Autor Beitrag
DerDelphiAnfänger
Hält's aus hier
Beiträge: 6
Erhaltene Danke: 1



BeitragVerfasst: Mi 28.09.11 19:53 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden 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:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
FCurrentEdit.Text := FCurrentEdit.Text + '1';					
Und wenn du es noch einfacher willst, schreibst du einfach einmal:
ausblenden 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:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 6
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
DerDelphiAnfänger Threadstarter
Hält's aus hier
Beiträge: 6
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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, das könnte die ersten Probleme klären. :les: :think: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: DerDelphiAnfänger