![]() |
Animation von TImages
Hi, ich habe mal bei Hans101 geschaut, da ist es so das man TIMage so animieren (also mehrere Bilder nacheinander laden) kann,indem man mit dem Befehl Image1.canvas etc. ein weiteres Bild zeichnen kann, aber ich hab soweit keine Ahnung - Brauche Hilfe :!:
|
Re: Animation von TImages
Liste der Anhänge anzeigen (Anzahl: 1)
Es kommt immer darauf an was und wie gemacht werden soll. Ein TImage ist eigentlich keine gute Wahl da es sich hierbei um eine "Statische" Komponente handelt. Zwar kann man auf den Canvas des Images (bzw. des Pictures oder Bitmaps) zeichnen es wird aber bei der Darstellung zu einem Flackern kommen.
Ich würde eine Paintbox benutzen um selbst animierte Bbitmaps darzustellen oder gleich die Komponente TAnimation. Eine Möglichkeit habe ich als Demo (Paintbox-Methode) mal Angehangen. Siehe auch: [oh]BitBlt, StretchBlt[/oh] |
Re: Animation von TImages
geht das auch ohne eine .avi datei?
|
Re: Animation von TImages
ok ,das Problem ist behoben. Danke für das tolle Beispiel :-D
|
Re: Animation von TImages
Jetzt tritt das Problem auf, dass ich ja ein anderes Avi als die Katze verwenden möchte --> ich habe kein Programm, das mir dann die Datei in 32x32 .avi umwandelt, wenn ich das avi größer mache, dann bringt mir Delphi dei Meldung, dass die Datei nicht geöffnet werden kann.
::Ich habe dabei versucht, auch mal animate1 und paintbox1 mit einem Timer nach rechts zu bewegen:: Bei animate1 flimmert es nicht, aber es flimmert leicht bei der paintbox, also würde ich animate2 bevorzugen, allerdings habe ich das oben genannte Problem mit der Erstellung der Animationen. Vielleicht könnt Ihr mir ja einen Tipp geben (givs zu avis würde auch gehn, aber es müsste gif zu 32x32 sein oder???) |
Re: Animation von TImages
Du musst die AVI-Datei mit RLE - Komprimierung speichern um sie in einem TAnimate zu verwenden.
|
Re: Animation von TImages
Wo finde ich ein Programm mit RLE-Komprimierung?
|
Re: Animation von TImages
Ich habe inzwischen ein Programm gefunden
|
Re: Animation von TImages
Ich verstehe deine MyDawBitmap-Prozedur nicht.
|
Re: Animation von TImages
Delphi-Quellcode:
Und was davon nicht ?
procedure TForm1.MyDrawBitmap;
begin if not CheckBox1.Checked then // ist nicht CheckBox1 markiert dann nomal zeichnen begin BitBlt( PaintBox1.Canvas.Handle, // Wohin zeichnen 0, // X-Pos im Ziel 0, // Y-Pos im Ziel PicWith, // Bildbreite PicHight, // Bildhöhe MyBitmap.Canvas.Handle, // Von welcher Quelle PicWith * AktPic, // Breite eines Bildes mal aktuelles Bild 0, // Y-Pos der Bildquelle (ist ja immer gleich) SRCCOPY // Methode: aus Quellbild nach Ziel kopieren ); end else // ist CheckBox1 markiert dann gedehnt zeichnen begin StretchBlt( PaintBox1.Canvas.Handle, // Wohin zeichnen 0, // X-Pos im Ziel 0, // Y-Pos im Ziel PaintBox1.Width, // so Breit wie die Paintbox PaintBox1.Height, // so Hoch wie die Paintbox MyBitmap.Canvas.Handle, // Von welcher Quelle PicWith * AktPic, // Breite eines Bildes mal aktuelles Bild 0, // Y-Pos der Bildquelle (ist ja immer gleich) PicWith, // Breite eines Einzelbildes PicHight, // Höhe eines Einzelbildes SRCCOPY // Methode: aus Quellbild nach Ziel kopieren ); end; end; Siehe auch: [oh]BitBlt, StretchBlt[/oh] |
Re: Animation von TImages
kann man für MyBitmap.canvas.handle als quelle auch die bilddatei direkt angeben?
für was steht der befehl "handle"? |
Re: Animation von TImages
Zitat:
Zitat:
|
Re: Animation von TImages
ich habe für den BitBlt-Befehl folgende Zeilen geschrieben:
Delphi-Quellcode:
beim compilieren wird das Problem von "inkompatiblen Typen: 'HDC' und 'TBitmap'" angezeigt.
var
Form1: TForm1; b:integer; bg:TBitmap; const x=10; y=10; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender:TObject); begin bg:=TBitmap.Create; bg.PixelFormat := pf24Bit; end; procedure TForm1.START1Click(Sender: TObject); begin timer2.Enabled:=false; form1.DoubleBuffered:=true; bg.loadfromfile('.\pics\trasch24b.bmp'); Bitblt(paintbox1.Canvas.Handle,0,555,1036,50,bg,0,0,srccopy); paintbox1.Canvas.Draw(0,555,bg); image2.picture.loadfromfile('.\pics\stehen_1.bmp'); image5.Picture.LoadFromFile('.\pics\door.bmp'); end; Mit der Paintbox und den Positionsparametern in der BitBlt-Prozedur müsste alles richtig sein, dass heißt, ich habe ein Problem mit der Variablen "bg". Muss man dafür ein bestimmtes Bild-Format haben oder sonst irgendwas beachten? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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