Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

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

  Alt 7. Feb 2005, 19:53
Zitat:
Delphi-Quellcode:
procedure TForm1.ImageClick(Sender: TObject);
begin
  if actualPlayer = 2 then
    Player2Draw
  else
  begin
    if Sender = Feld1 then
      DrawSymbol(Feld1)
   else if Sender = Feld2 then
     DrawSymbol(Feld2)
   else if Sender = Feld3 then
     DrawSymbol(Feld3)
   else if Sender = Feld4 then
     DrawSymbol(Feld4)
   else if Sender = Feld5 then
     DrawSymbol(Feld5)
   else if Sender = Feld6 then
     DrawSymbol(Feld6)
   else if Sender = Feld7 then
     DrawSymbol(Feld7)
   else if Sender = Feld8 then
     DrawSymbol(Feld8)
   else if Sender = Feld9 then
     DrawSymbol(Feld9);
   end;

  if actualPlayer = 1 then
    actualPlayer := 2
  else if actualPlayer = 2 then
    actualPlayer := 1;
end;
Das kannst du noch vereinfachen (bin davon ausgegangen, dass es nur zwei Spieler gibt):
Delphi-Quellcode:
procedure TForm1.ImageClick(Sender: TObject);
begin
  if actualPlayer = 2 then
  begin
    Player2Draw
    actualPlayer:=1;
  end
  else
  begin
    DrawSymbol(Sender)
    actualPlayer := 2
  end;
end;
Zitat:
Delphi-Quellcode:
procedure TForm1.Player2Draw;
[...]
1. Randomize nur einmal aufrufen . Am besten im TForm1.Create;
2. DrawSymbol(FindComponent('Feld'+IntToStr(Randomfield))); [EDIT]Noch schneller :actualPlayer:=Integer(Odd(actualPlayer))+1; oder wäre hier :=actualPlayer mod 2 +1 doch schneller?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat