unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 =
class(TForm)
Time: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure TimeTimer(Sender: TObject);
private
{ Private-Deklarationen }
SpeziesR, SpeziesB:
Array of TShape;
procedure Move;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
Var i: Integer;
begin
Randomize;
for i := 1
to 10
do
begin
SetLength(SpeziesR,i);
SpeziesR[i]:= TShape.Create(Self);
SpeziesR[i].Parent:=Form1;
SpeziesR[i].Shape:=stCircle;
SpeziesR[i].Width:=30;
SpeziesR[i].Height:=30;
SpeziesR[i].Brush.Color:=clRed;
SpeziesR[i].Left:=Random(470);
SpeziesR[i].Top:=Random(470);
SetLength(SpeziesB,i);
SpeziesB[i]:= TShape.Create(Self);
SpeziesB[i].Parent:=Form1;
SpeziesB[i].Shape:=stCircle;
SpeziesB[i].Width:=30;
SpeziesB[i].Height:=30;
SpeziesB[i].Brush.Color:=clBlue;
SpeziesB[i].Left:=Random(470);
SpeziesB[i].Top:=Random(470);
end;
end;
procedure TForm1.FormDblClick(Sender: TObject);
begin
if Time.Enabled=false
then
Time.Enabled:=true
else
Time.Enabled:=false;
end;
procedure TForm1.Move;
Var i, Direction: Integer;
begin
for i := 1
to 10
do
begin
Direction:=Random(4);
case Direction
of
1 : SpeziesR[i].Left := SpeziesR[i].Left -1;
// Sobald ich ab hier versuche auf die Shapes zuzugreifen bekomme ich nur noch AV
2 : SpeziesR[i].Top:= SpeziesR[i].Top -1;
// Fehlermeldungen
3 : SpeziesR[i].Left := SpeziesR[i].Left +1;
4 : SpeziesR[i].Top := SpeziesR[i].Top +1;
end;
Direction:=Random(4);
case Direction
of
1 : SpeziesB[i].Left := SpeziesB[i].Left -1;
2 : SpeziesB[i].Top:= SpeziesB[i].Top -1;
3 : SpeziesB[i].Left := SpeziesB[i].Left +1;
4 : SpeziesB[i].Top := SpeziesB[i].Top +1;
end;
end;
end;
procedure TForm1.TimeTimer(Sender: TObject);
begin
Move;
end;
end.