Wie stellst du dir das vor? Wie soll das funktionieeren? Überleg mal: Was machst du da:
Delphi-Quellcode:
var
Form1: TForm1;
NewTimer: TTimer;
NewImage: TImage;
// auch hier: willst du jetzt das array nehmen oder die Variable?
i: Integer;
// Warum deklarierst du i global? Mal davon abgesehen, dass man globale Variablen sowieso meiden sollte(siehe hierzu entsprechenden Thread), warum i? Diese wird noch nicht mal benutzt, weil später ein lokales i verwendet wird
ImageArray:
array[1..10]
of TImage;
// Normal fängt man mit 0 an, aber das is nicht so schlimm
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned( NewTimer )
then begin
NewTimer := TTimer.Create (
Nil);
// Wo gibts du den Timer wieder frei? Sowas nennt sich dann Speicherleiche
NewTimer.Interval := 20;
NewTimer.Enabled := True;
NewTimer.OnTimer := DoTimer;
end;
begin // warum noch mal n begin?
NewImage := TImage.Create(
Nil);
// warum nimmst du denn nicht das array? Eigentlich müsste der Compiler dir auch mitteilen, dass dein array gar nicht verwendet wird. Und der Compiler zeigt die Meldungen nicht zum Spaß an...
with NewImage
do
begin
Top := 144;
Left := 8;
Picture.LoadFromFile('
xxx.bmp');
Parent := Form1;
Name := '
xxx';
// Name musst du IMHO nicht zuweisen, du organisierst ja alles im array (eigentlich)
end;
end;
end;
procedure TForm1.DoTimer(Sender: TObject);
var
i: integer;
begin
for i := Low(ImageArray)
to High(ImageArray)
do
with ImageArray[i]
do
Top := Top - 3;
end;
Alles in allem würde ich dir dringend raten dir nochmal die Grundlagen anzugucken...
mfg
Christian