AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Animation über TImageList
Thema durchsuchen
Ansicht
Themen-Optionen

Animation über TImageList

Ein Thema von kroete · begonnen am 12. Apr 2008 · letzter Beitrag vom 12. Apr 2008
Antwort Antwort
kroete

Registriert seit: 28. Feb 2008
43 Beiträge
 
Delphi 2005 Personal
 
#1

Animation über TImageList

  Alt 12. Apr 2008, 20:50
Hallo
Ich schlage mich hier gerade wie in dem anderem Thread beschrieben mit einer Animation von Bildern aus einer Imagelist.

In der Imagelist habe ich 0-7 also 8 *.bmp von 12x12 pixeln Größe jeweils und möchte diese an einer am besten dynamischen Stelle eines Images (hier: Image1 bzw test) anzeigen, um dort eine Animation vorzutäuschen.

Ich bin auf die Idee gekommen, das vielleicht über einen Timer zu steuern, damit man auch wirklich etwas von der Animation mitbekommt und die Frameverzögerung leicht einstellen kann.

Delphi-Quellcode:
procedure TForm1.b_testClick(Sender: TObject);
begin
  functions.func.clean ( test , clWhite ); // Bild weiß füllen
  p := 0; // Globale zählvariable auf 0
  animate.Enabled := true; // Timer enablen
end;

procedure TForm1.animateTimer(Sender: TObject);
begin
  // 0,0 sind die Zielkoordinaten
  l_test.Caption := 'Frame: ' + IntToStr ( p );
  imgl_1.Draw(test.Canvas, 0 , 0 , p);
  l_test.Caption := 'Frame: ' + IntToStr ( p );
  Inc(p);
  if p > imgl_1.Count then
    begin
      p:=0; sleep ( 1000 ); animate.Enabled := false;
    end;
end;
Jetzt zählt er richtig, dennoch wird garkein Bild mehr angezeigt o.O

Wie kann ich das ändern?

Wäre echt toll, wenn mir einer von euch helfen würde!

kroete
  Mit Zitat antworten Zitat
wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#2

Re: Animation über TImageList

  Alt 12. Apr 2008, 21:24
Du musst das Image Refreshen. Füg mal ein test.Refresh; oder alternativ ein test.Repaint; nach dem Malen ein.

Ich hab das ganze auch mal ausgecodet. Kleine Testapp ist im Anhang inkl. Source. Die Testapp iteriert durch alle Bilder einer Imagelist und zeigt alle 100ms ein anderes Bildchen an. Ist keine Animation, aber naja. Das Prinzip wirst eh sehen .
Angehängte Dateien
Dateityp: rar imagelist_animation_376.rar (184,3 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
kroete

Registriert seit: 28. Feb 2008
43 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Animation über TImageList

  Alt 12. Apr 2008, 22:58
Besten Dank, wido.
Ich hab das jetzt folgendermaßen gemacht:
Ich hab mir ein _neues_ Bild erstellt, 12x12 px, welches von der Animation betroffen ist. "f_ship.anim"
Wenn ich animieren will (schießen um genau zu sein), muss ich nun erstmal die x und y-koordinaten angeben, wohin die animation gehen soll und dann den timer anmachen.

Da es wie gesagt um Schiffeversenken geht, wird danach in diesem Feld angezeigt ob es Wasser, oder eben ein getroffenes Schiff ist.

Da der Timer aber "nebenbei" läuft, sieht das doof aus, da mitten in der Animation die Wasser bzw. Getroffen-grafik gemalt wird (also kreis oder kreuz).

Wie kann ich eben das _nachdem_ der Timer durchgelaufen ist machen?

---------------------------------------

Erledigt - für die, dies interessiert: Einfach das, was danach kommen soll im Timer aufrufen!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz