Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#24

AW: TicTacToe - Frage zum Programmablauf

  Alt 12. Apr 2017, 15:39
Dashier ist jetzt so nicht mehr richtig:
Delphi-Quellcode:
// Welcher Button wurde gedrückt?
  X := 90;
  Y := 90;
  for Index := 0 to Self.ControlCount - 1 do
  begin
   If Sender = Self.Controls[ Index ] then
   begin
     X := (Sender as TSpeedButton).Tag mod 10;
     Y := (Sender as TSpeedButton).Tag div 10;
   end;
  end;
Dashier sollte ausreichen:
Delphi-Quellcode:
  X := (Sender as TSpeedButton).Tag mod 10;
  Y := (Sender as TSpeedButton).Tag div 10;
Wir wollen ja, weil es nicht funktioniert, vom Durchlaufen von Self.Controls weg. Die Nutzung der Eigenschaft Tag dient ja genau der Abschaffung dieser fehleranfälligen Vorgehensweise.

Wir brauchen durch die Änderung auf die Tag-Nutzung nicht mehr abfragen, welcher Button gedrückt wurde. Der Button teilt uns dies durch den Inhalt von Tag selbst mit.

Der Button mit Tag = 11 sagt dadurch letztlich: "Ich bin der Butten von unten links."
Der Button mit Tag = 33 sagt uns: "Ich bin der Button von oben rechts."

Mit Tag mod 10 bzw. Tag div 10 wird der zweistellige Wert von Tag auf X und Y "verteilt", also in die jeweiligen Koordinaten umgerechnet.
  Mit Zitat antworten Zitat