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 user profile iconNarses: 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!

user profile iconDerDelphiAnfänger hat folgendes geschrieben Zum zitierten Posting springen:
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?


Narses - Mi 28.09.11 23:09

Moin!

user profile iconDerDelphiAnfänger hat folgendes geschrieben Zum zitierten Posting springen:
ok danke, dann versuch ich es mal mit tic tac toe :D
Tipps gibt´s sicher hier im Forum schon genug: Suche in: Delphi-Forum, Delphi-Library TIC TAC TOE

user profile iconDerDelphiAnfänger hat folgendes geschrieben Zum zitierten Posting springen:
aber was für komponente braucht man?
Hm, vielleicht schaust du doch mal erst hier rein [http://wwwh.delphi-forum.de/topic_VCL+Memory+Tutorial++fuer+EinUmsteiger_44084.html], das könnte die ersten Probleme klären. :les: :think: ;)

cu
Narses