Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Wie kann ich auf Komponenten zugreifen,deren Index varia

  Alt 7. Feb 2005, 23:10
Moin!

Ein wenig Erklärungsversuche

Delphi-Quellcode:
procedure TForm1.ImageClick(Sender: TObject);
begin
  if actualPlayer = 2 then
  begin
    Player2Draw;
    actualPlayer:=1;
  end
  else
  begin
    DrawSymbol(Sender); // Sender enthält ja das Image was geklickt wurde. Nur die Eigenschaften von TImage hast du nicht,
                         // da Sender hier als TObject definiert ist. Dabei hilft dann ein TypeCast ( Sender As TImage ).
    actualPlayer := 2;
  end;
end;
Zitat:
1. Randomize nur einmal aufrufen . Am besten im TForm1.Create;
Randomize initialisiert die Zufallsfunktion und ermittelt einen Seed Wert mit dem dann später die Zufallszahlen ermittelt werden. Dieser Seed Wert ist wichtig, weil wenn er unverändert bleibt und direkt Random aufgerufen wird, dann kommen bei jedem Programmstart so gut wie immer die gleichen Zahlenreihen raus. Auch ein mehrfaches aufrufen von Randomize ist schlecht, weil dann der Seed Wert immer wieder neu berechnet wird und auf Grund der Formel, mit der dieser berechnet wird, sich dann in den Zufallswerten nicht mehr viel ändert.
Und FormCreate (also das OnCreate bei deiner Form) wird nur einmalig aufgerufen und daher ist dies ein guter Platz für solche Dinge (@other: ausser die Form wird selber per Hand öfters erstellt, ich weiss...)

:=actualPlayer mod 2 +1 Als Erklärung:
Dein aktueller Spieler wird der Rest der ganzzahligen Division durch 2 zugewiesen. Das Ergebnis kann dadurch nur 0 oder 1 sein. Ein Rest der ganzzahligen Division durch 2 ist immer 0 bei einer geraden Zahl und 1 bei einer ungeraden Zahl. Damit ist immer ein Wert zwischen 0 und 1 gewährleistet. Da du aber mit 1 und 2 arbeitest, wird einfach auf das Ergebnis eine 1 hinzuaddiert und wir kommen auf Zahlen 1 und 2 - immer im Wechsel - mit jedem Aufruf.

MfG
Muetze1
  Mit Zitat antworten Zitat