Wenn, dann doch eher so?
Delphi-Quellcode:
// als Feld in die Klasse aufnehmen:
// GehAnimation: Integer;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
//Inc(GehAnimation);
//if GehAnimation >= 3{Anzahl} then GehAnimation := 0;
GehAnimation := (GehAnimation + 1) mod 3{Anzahl};
case GehAnimation of
0: Player.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Graphiken\Charanimation1.ico');
1: Player.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Graphiken\Charanimation2.ico');
2: Player.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Graphiken\Charanimation3.ico');
end;
end;
Delphi-Quellcode:
// als Feld in die Klasse aufnehmen:
// GehAnimation: Integer;
// Verzeichnis: String;
// beim Programmstart initialisieren (z.B. in OnCreate):
// Verzeichnis := ExtractFileDir(Application.ExeName);
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Gehen then begin
GehAnimation := (GehAnimation + 1) mod 3{Anzahl};
Player.Picture.LoadFromFile(Format('%sGraphiken\Charanimation%d.ico', [Verzeichnis, GehAnimation + 1]));
end else begin
if GehAnimation >= 0 then // braucht ja nur einmal geladen zu werden
Player.Picture.LoadFromFile(Verzeichnis + 'Graphiken\CharanimationStehen.ico');
GehAnimation := -1;
end;
end;
Und ich empfehle dir dringens die relativen Pfade abzuschaffen.
Die Gründe werden häufig genug hier im Forum genannt (siehe SuFu).
PS: Statt LoadFromFile alle Bilder nur einmal, beim Programmstart laden und dann via Picture.Assign zuweisen.
Also z.B. je Bild ein TPicture in einer Liste (TObjektList) oder notfalls mehrere "unsichtbare" TPicture auf der Form ablegen.