Es gibt da viele Lösungen. Ich denke die einfachste ist, dass du dir das Editfeld merkst, in dem du gerade bist und dort etwas hineinschreibst.
Sprich, du brauchst einen Platz zum Speichern des Edits:
Delphi-Quelltext
1: 2: 3: 4: 5:
| TFormX = class(TForm) ... private FCurrentEdit: TEdit; end; |
Nun musst du noch dafür sorgen, dass da das aktuelle Editfeld hineinkommt. Das kannst du zum Beispiel machen, indem du dir merkst, wenn der Eingabefokus (also wo die Zeichen landen, wenn du was auf der Tastatur schreibst) dorthin wechselt. Dafür gibt es das Ereignis OnEnter.
Du markierst also beide Editfelder, gehst im Objektinspektor auf Ereignisse und klickst dort doppelt auf OnEnter. Dort schreibst du den Code hin:
Delphi-Quelltext
1:
| FCurrentEdit := Sender as TEdit; |
In Sender bekommst du das Objekt, von der das Ereignis ausgelöst wurde, und du musst mit dem as noch Bescheid sagen, dass das ein TEdit sein sollte.
Nun kannst du statt
edit1.text:= edit1.text +'1'; schreiben:
Delphi-Quelltext
1:
| FCurrentEdit.Text := FCurrentEdit.Text + '1'; |
Und wenn du es noch einfacher willst, schreibst du einfach einmal:
Delphi-Quelltext
1:
| FCurrentEdit.Text := FCurrentEdit.Text + (Sender as TButton).Caption; |
Den Code kannst du dann für alle Buttons verwenden.
Am Ende sollte es also so ähnlich aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| type TFormX = class(TForm) ... private FCurrentEdit: TEdit; end;
implementation
procedure TFormX.EditXEnter(Sender: TObject); begin FCurrentEdit := Sender as TEdit; end;
procedure TFormX.ButtonXClick(Sender: TObject); begin FCurrentEdit.Text := FCurrentEdit.Text + (Sender as TButton).Caption; end; |
Eigentlich würde aber ein Eingabefeld reichen. Siehe Windows-Taschenrechner.
