AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte BMP (Bitmap) Animator

BMP (Bitmap) Animator

Ein Thema von Tropby · begonnen am 3. Jun 2009 · letzter Beitrag vom 6. Jun 2009
 
Tropby

Registriert seit: 4. Dez 2006
16 Beiträge
 
#1

BMP (Bitmap) Animator

  Alt 3. Jun 2009, 14:00
Der BMP (Bitmap) Animator

Aktuelle Version : 0.3

Da häufig mal verlangt wurde, dass es kleine Animationen in Programmen geben sollte und ich da keine Lust hatte mir immer was neues einfallen zu lassen habe ich diese Unit geschrieben.


Diese Unit ist im Stande ein Format, ich habe es jetzt mal ".anibmp" genannt, einzulesen und die Bilddaten zu animieren. In dieser Version der Unit fehlen noch ein paar Fehlerabfragen jedoch ist sie so schon in einigen Programmen getestet. Da die Zeitberechnung der Animation in einen Thread ausgelagert ist und die Callback-Funktion nur einen Pointer zu den Bilddaten bekommt, ist die Animation, wenn man sie noch mit Hier im Forum suchenBitBlt benutzt, auch bei schnellen Animationen flüssig. Wie das ganze aussieht wenn viele Animationen zur gleichen Zeit laufen habe ich noch nicht getestet.


Mit einem beiligendem Tool namens "BMP Animator.exe" können diese ".anibmp"-Dateien erstellt werden. Als Ausgangsbasis dienen hierbei normale Bitmaps. Der "BMP Animator" kann auch die erstellten Dateien sofort abspielen um zu sehen ob Fehler aufgetreten sind.


Die Klasse kann:
  1. Animationen abspielen
  2. Animationen pausieren
  3. Animationen rückwärtsablaufen lassen

Funktions-Beschreibungen

Constructor:
constructor TAniBMP.Create(); Overload; Dies sind die Constructor der TAniBMP-Class.

Animation Laden:
Delphi-Quellcode:
procedure TAniBMP.LoadFromFile(const Filename : String);
procedure TAniBMP.LoadFromStream(const Stream : TStream);
Hiermit kann die Animation die das Objekt machen soll geändert werden.

Einen Frame Extrahieren:
function TAniBMP.GetFrame(FrameID : Integer; var bmp : TBitmap) : Integer; Wenn die Funktion erfolgreich ist liefert sie 0 zurück und bmp ist mit dem angegeben Frame gefüllt.

Animation starten:
function TAniBMP.start(CallbackID : Integer = 0) : Boolean; Startet die Animation mit der angegeben CallbackID.

Animation stoppen:
procedure TAniBMP.stop(CallbackID : Integer = 0); Stoppt die Animation mit der angegeben CallbackID.


Animation stoppen:
Delphi-Quellcode:
procedure TAniBMP.pause(Pause : Boolean; CallbackID : Integer = 0);
function TAniBMP.IstPausiert(CallbackID : Integer = 0) : Boolean;
Pausiert eine Animation.


Eigenschafts-Beschreibungen

TAniBMP.OnAnimate = procedure(ID : Integer; P: Pointer); OnAnimate wird für jedes Frame aufgerufen.
  • P ist ein Pointer zu dem Bitmap
  • ID ist die CallbackID der Animation


TAniBMP.Interval : Integer; Zeit in Millisekunden in denen die Frames geredert werden sollen.


TAniBMP.StartFrame : Integer; Das erste Frame, des zu der Animation gehört.


TAniBMP.EndFrame : Integer; Das letzte Frame, des zu der Animation gehört.


TAniBMP.AnzFrames : Integer; (readonly) Anzahl der Frames, die die Animation besitzt.


TAniBMP.Backward : Boolean; Soll die Animation vorwärts oder rückwärts abgespielt werden?
TRUE = Rückwärts


TAniBMP.Exceptions : Boolean; Sollen Execptions ausgegeben werden.


TAniBMP.LastError : String; Last Error beinhaltet die letzte Errornachricht.
Ist ganz nützlich wenn Exceptions ausgeschaltet sind.


Changelog:

Version 0.3
  • Der Klasse Eigenschaften hinzugefügt und dafür die Übergabeparameter aus der Startfunktion entfernt
  • Die Callbackfunktion heißt nun TAniBMP.OnAnimate
  • Einige Funktionen umbenannt da die Benennungen unsinig waren
  • Animationen können Rückwärts abgespielt werden (TAniBMP.Backward : Boolean.
  • Mehr als eine Animation sind nun möglich. Dazu kommt auch noch, dass alle Animationen mit verschiedenen Eigendschaften gestartet werden können.


Version 0.2
  • Erste veröffendlichung


Ich habe die Unit gestestet und zur Zeit keine Fehler gefunden (Rechtschreibfehler ausgenommen).
Trotzdem kann ich nicht garantieren, dass es Fehler gibt und es zu Datenverlust führen kann
Angehängte Dateien
Dateityp: zip bmp_animator_v0.3_186.zip (837,0 KB, 54x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz