Entwickler-Ecke
Sonstiges (Delphi) - Hilfe beim Taschenrehner!
DerDelphiAnfänger - Mi 28.09.11 19:53
Titel: Hilfe beim Taschenrehner!
hallo
ich hoffe ihr könnt mir helfen.
ich versuche zurzeit ein taschenrechner zu programmieren, bei dem man nicht die zahlen im editfeld eintippen muss, sondern, dass man auf buttons drückt und dann etwas im edit feld steht. so weit bin ich schon. also ich habe buttons 0-9, die beim klicken die jeweilige zahl im editfeld eingeben.
also ich habe jeden button diese zuweisung gegeben: z.B button 1
edit1.text:= edit1.text +'1';
das funktiioniert ja alles prima....
um nun zu rechnen muss ja auch eine zahl im einem zweiten editfeld stehen haben. wie mache ich das, dass ich mit dem selben button, etwas ins zweite edit feld zu schreiben, ohne dass gleichzeitig dasselbe im ersten edit feld geschrieben wird????
vielen dan schon einmal im voraus:D
gruß, derdephianfänger
jaenicke - Mi 28.09.11 20:05
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. ;-)
DerDelphiAnfänger - Mi 28.09.11 21:53
ok...
irgendwie bin ich noch ein wenig verwirrt. wo genau muss ich das alles hineinschreiben, zu welcher komponente?
---
Moderiert von
Narses: Beiträge zusammengefasst---
also mein formular sieht so aus:
-------------------------
Panel1
-------------------------
Edit 1
-------------------------
Button7 Button8 Button9 Button+
Button4 Button5 Button6 Button-
Button1 Button2 Button3 Button*
Button. Button/
Button=
was genau muss ich jetzt alles in den quellcode hineinschreiben? Damit so eine Art Windows-Taschenrechner herauskommt?
Narses - Mi 28.09.11 22:36
Moin und :welcome: in der Entwickler-Ecke!
DerDelphiAnfänger hat folgendes geschrieben : |
was genau muss ich jetzt alles in den quellcode hineinschreiben? Damit so eine Art Windows-Taschenrechner herauskommt? |
Hm, du scheinst mit der Aufgabe arg überfordert zu sein. :? Das wundert mich auch nicht, denn ein Taschenrechner (auch der Windows-eigene) ist mal überhaupt kein einfaches und schon gar kein Anfänger-Projekt. :nixweiss:
Wenn du dir die Aufgabe selbst aussuchen darfst, dann rate ich dir z.B. zu TicTacToe, oder wenn´s etwas schwieriger sein soll zu 4 Gewinnt. Memory ist auch immer eine gute Einsteiger-Aufgabe. :idea:
cu
Narses
DerDelphiAnfänger - Mi 28.09.11 23:03
ok danke, dann versuch ich es mal mit tic tac toe :D aber was für komponente braucht man?
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!