Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#11

AW: Brauche Hilfe bei einer Gehanimation!

  Alt 15. Mai 2011, 11:45
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Mai 2011 um 11:52 Uhr)
  Mit Zitat antworten Zitat