So, ich habe jetzt deinen Tipp beachtet und es klappt damit auch soweit.
Code:
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;
procedure TForm1.Player2Draw;
var randomfield: integer;
begin
randomize;
repeat
randomfield := random(8) + 1;
until(fields[randomfield] = 0);
DrawSymbol(Feld+randomfield);
end;
procedure TForm1.DrawSymbol(imageSender: TObject);
begin
TImage(imageSender).Canvas.Pen.Width := 5;
if(fields[TImage(imageSender).Tag] = 0) then
begin
if actualPlayer = 1 then
begin
TImage(imageSender).Canvas.Pen.Color := clRed;
TImage(imageSender).Canvas.MoveTo(0, 0);
TImage(imageSender).Canvas.LineTo(TImage(imageSender).Width, TImage(imageSender).Height);
TImage(imageSender).Canvas.MoveTo(TImage(imageSender).Width, 0);
TImage(imageSender).Canvas.LineTo(0, TImage(imageSender).Height);
end
else
begin
TImage(imageSender).Canvas.Pen.Color := clBlue;
TImage(imageSender).Canvas.Ellipse(5, 5, (TImage(imageSender).Width - 5), (TImage(imageSender).Height - 5));
end;
fields[TImage(imageSender).Tag] := actualPlayer;
end
else
showmessage('Dieses Feld ist bereits gesetzt');
end;
Nun ist mein Problem dass clickImage alles weitergibt wie es soll und die Procedure DrawSymbol auch alles dann richtig ausführt.
Allerdings will ich nun in der Proce Player2Draw per Zufall bestimmen lassen, in welches Feld er zeichnen soll. Wie kann ich das dann an die DrawSymbol übergeben? mit 'DrawSymbol(Feld+randomfield);' geht es nicht.