Entwickler-Ecke
Sonstiges (Delphi) - Summe zweier Zahlen mit nur einem edit-feld?
DerDelphiAnfänger - Fr 30.09.11 17:39
Titel: Summe zweier Zahlen mit nur einem edit-feld?
Hallo,
Ich frage mich, ob es eine einfache möglichkeit gibt, Zwei Zahlen zu addieren mit nur einem Edit-Feld, anstatt Zwei.
schon einmal danke im voraus :D
jaenicke - Fr 30.09.11 17:54
Überlege dir doch einfach einmal was du der Reihe nach ausführst, wenn du das machen würdest. Du kannst ja auch den Windows-Rechner zu Rate ziehen und es ausprobieren.
Und dann überlege dir was bei jedem Tastendruck passieren muss. Nur bei jedem einzelnen Tastendruck. Und dann schaue wie viele verschiedene Reaktionen benötigt werden.
Einfach zu verstehen ist das als Anfänger nicht für jeden. ;-) Das Prinzip nennt sich endlicher Automat.
Delphi-Laie - Fr 30.09.11 21:20
DerDelphiAnfänger hat folgendes geschrieben : |
Hallo,
Ich frage mich, ob es eine einfache möglichkeit gibt, Zwei Zahlen zu addieren mit nur einem Edit-Feld, anstatt Zwei.
schon einmal danke im voraus :D |
Editfeld füllen, dann irgendeinen (Additions-)Button drücken, Editfeld in Zahl umwandeln und diesen numerischen Wert zwischenspeichern, Editfeld zweckmäßigerweise (Softwareergonomie!) löschen bzw. leeren, nächste Eingabe im Editfeld, dann wiederum auf den Additionsbutton (bei mehreren Summanden) oder auf einen Enter-/Istgleichbutton klicken, wiederum in Zahl umwandeln, addieren und das (Zwischen-)Ergebnis wiederum im Editfeld anzeigen.
Jeder gewöhnliche Taschenrechner (auch der in Windows) macht es vor (programierbare Taschenrechner und solche mit umgekehrter polnischer Notation einmal ausgenommen, die sind auch nicht gewöhnlich). Insofern hat jaenicke recht.
Delete - Sa 01.10.11 09:41
Man kann auch alles in das Edit-Feld eintragen und dann von einem
Math-Parser bearbeiten lassen.
Oder anders - Beispiel:
Weitere Möglichkeit: den String splitten mit dem "+"-Zeichen als Separator.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| function isNumeric(c : char) : Boolean; begin result:= CharInSet(c,['0'..'9']); end;
Procedure Test2; var strA, strB, strString: String; chrA: Char; intA: Integer; begin strString:= Form1.Edit1.Text; intA:=0;
repeat inc(intA); chrA := strString[intA]; if IsNumeric(chrA) then strA := strA + chrA; until IsNumeric(chrA)=false or (intA = Length( strString)); Form1.Label1.Caption:= strA;
repeat inc(intA); chrA := strString[intA]; if IsNumeric(chrA) then strB := strB + chrA; until intA = Length( strString);
Form1.Label2.Caption:= strB; if (strA<>'') and (strB<>'') then Form1.Label3.Caption:= IntToStr(StrToInt(strA)+StrToInt(strB)); end;
procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text:='1719+811'; Test2; end;
procedure TForm1.Button3Click(Sender: TObject); begin Edit1.Text:='1719 + 811'; Test2; end; |
storestore - So 02.10.11 20:49
Hi,
mich würde das ganze mal in c# interessiern. Wäre jemand so lieb mir mal ein Beispiel in c# zugeben?
Mfg storestore
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!