bf109g.01 - Mi 04.03.09 23:18
Titel: TicTacToe
Hallo, baue an einer TicTacToe Version, zunächst nur für zwei menschl. User.
Bei dem Spiel gibt es bekanntlich 9 Felder & max. 9 Züge, dann ist es spätestens vorbei.
_ _ _
|_|_|_|
|_|_|_|
|_|_|_|
Bie jedem der 9 Felder passiert beim Klicken aber zunächst genau dasselbe.
Weil die aber alle unterschiedlich heißen, brauchen die alle eine eigene (genau gleiche) Prozedur.
Was muss ich schreiben, damit alle Felder Pxy ('P11' - 'P33' (P=Panel, x-, y-Koordinate))
nur auf einen Text zugreifen können? Muss ich eine function verwenden? Wenn ja wie?
Danke schon mal im Voraus! :-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TF.P13Click(Sender: TObject); begin if move <=9 then begin if current= true then begin p13.caption:='X'; current:=false; end else begin p13.caption:='O'; current:=true; end; p13.enabled:=false; move:=move+1; end; end; |
Narses - Do 05.03.09 01:50
Moin und :welcome: im Forum!
bf109g.01 hat folgendes geschrieben : |
Weil die aber alle unterschiedlich heißen, brauchen die alle eine eigene (genau gleiche) Prozedur.
Was muss ich schreiben, damit alle Felder Pxy ('P11' - 'P33' (P=Panel, x-, y-Koordinate))
nur auf einen Text zugreifen können? |
Schau mal hier [
http://www.delphi-library.de/topic_VCL+Memory+Tutorial_44084.html], das ist zwar ein anderes Spiel, aber da wird die Technik, eine gemeinsame Aktionsmethode für gleiche Controls zu verwenden, demonstriert. :idea: ;)
bf109g.01 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2:
| procedure TF.P13Click(Sender: TObject); | |
Das ist schon OK so, irgendwie muss die Methode ja heißen. Und diese Methode stellst du im Objekt-Inspektor einfach für alle Controls ein. Welches Control das Ereignis ausgelöst hat, bekommst du im Parameter
Sender: TObject geliefert. Details im o.a. Tutorial. :les:
bf109g.01 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2:
| if current= true then begin | |
Du solltest nicht auf TRUE hin vergleichen, sondern einfach nur
if current then verwenden; könnte sonst zu komischen Effekten führen (wird dir sicher auch gleich noch von Anderen mit Links auf erläuternde Beiträge gesagt ;)).
cu
Narses