Delphi 2 eingabe felder addieren

smat

Grünschnabel
Hallo,
wie kann ich den zwei zahlen die in zwei textfelder sind addieren lassen? ich hab gedacht des geht so: Edit3.Text:= Edit1.Text + Edit2.text geht aber net. Und wie kann ich denn machen dass man nur zahlen eingeben kann?
Danke für die Hilfe schon mal im vorraus :RTFM:
 

Dario Linsky

Erfahrenes Mitglied
So einfach geht das nicht. Das, was erstmal in den TEdit-Feldern steht, sind ja Strings - also müsstest Du daraus erstmal Zahlen machen. Zum Beispiel mit StrToInt().
Und nachher natürlich noch wieder zurück in einen String umwandeln (umgekehrt mit IntToStr()).

Um zu überprüfen, ob eine Zahl eingegeben wird, kannst Du einfach das OnKeyPress-Ereignis nehmen und den Ascii-Code des eingegebenen Zeichens überprüfen. Zahlen haben ja nur einen bestimmten Ascii-Bereich. Bei allen anderen Zeichen setzt Du den Ascii-Code einfach auf 0, dann wird die Eingabe ignoriert.
 

niTeZ

Mitglied
müsste gehen mit so ca.:

Code:
var
x, y, z: real; 
begin
  x:=StrToFloat(edX.Text);
  y:=StrToFloat(edY.Text);

  z:=x+y;
  
  mmAus.Lines.Add(FloatToStr(z));

end;


kann gehen kann nicht gehen xD

Edit Lirion: sollte eigentlich funktionieren, zumindest seh ich nichts, was dagegen spricht. Vielleicht solltest Du aber noch erwähnen, dass mmAus ein TMemo (oder TListBox?) ist und kein TEdit. :)
 
Zuletzt bearbeitet von einem Moderator:

mirko

Grünschnabel
Original geschrieben von smat
Hallo,
wie kann ich den zwei zahlen die in zwei textfelder sind addieren lassen? ich hab gedacht des geht so: Edit3.Text:= Edit1.Text + Edit2.text geht aber net. Und wie kann ich denn machen dass man nur zahlen eingeben kann?
Danke für die Hilfe schon mal im vorraus :RTFM:

so gehts:

edit3.text:=str(int(edit1.text) + int(edit2.text))

hintergrund:

das edit feld ist ein textfeld und kein zahlenfeld deshalb mußt du es erstmal umwandeln in eine zahl mit int(edit1.text), zum ausgeben in einem anderen edit mußt du den "zahlen" natürlich auch erstmal wieder sagen das sie als text (in einem TEXT feld angezeigt werden sollen also - rückwandeln mit str(edit....).