Dein showmessage mit dem i steht vor der schleife, d.h. deine variable i ist noch gar nicht initialisiert und hat noch irgendeinen wert, den sie bekommen hat, als ihr ein stückchen speicher zugewiesen worden ist.
schieb das showmessage mal in die schleife rein, dann siehst du, dass i richtig läuft
nochwas: du brauchst doch gar kein piccount mehr, oder?
Delphi-Quellcode:
procedure TForm3.FormShow(Sender: TObject);
var
ImageFile: string;
n, i: integer;
begin
n:= Form1.Memo1.Lines.Count-1;
for i:=0 to n do
begin
ShowMessage(inttostr(i) + '< i to n >' + inttostr(n));
//----------------------------------------------------------------------
if i mod 5 = 0 then
ImageFile:=ExtractFilePath(Application.ExeName)+'HZImage.bmp'
else
ImageFile:=ExtractFilePath(Application.ExeName)+'TempImage.bmp';
//----------------------------------------------------------------------
JpegToBmp(Form1.Edit1.Text + Form1.Memo1.Lines[i]);
FadeIn(ImageFile);
sleep(8000);
Application.ProcessMessages;
Fadeout(ImageFile);
end;
end;
Grenzgänger meint, dass du verhinden kannst, dass der Timer aufgerufen wird, solange das OnTimer Ereignis vom vorherigen aufruf des Timers noch nicht abgearbeitet ist. Die idee is cool
Aber auch nicht wirklich sauber
Grüße