![]() |
Timagelist -> Timage
hi. ich will sobald ein bestimmtes ereignis eintrifft eine animation in form von einer timagelist starten. in der imagelist sind logischerweise mehrere bilder für die animation.
ich wollt die imagelist in ein "normales" image laden.
Delphi-Quellcode:
der compiler streikt. warum?
image1.Canvas.assign(imagelist2);
|
Re: Timagelist -> Timage
Du kannst auch nicht eine ImageList mit einem Image gleichsetzen.
|
Re: Timagelist -> Timage
hm und welche andere alternative habe ich das ich timagelist anzeigen kann?
|
Re: Timagelist -> Timage
Du kannst keine ImageList anzeigen, du kannst höchstens die Bilder in der ImageList anzeigen. Schau mal z.B. nach ImageList.GetImages
|
Re: Timagelist -> Timage
und wie kann ich die bilder von der imagelist in einem timage anzeigen?
|
Re: Timagelist -> Timage
Zitat:
Delphi-Quellcode:
Gruß Hawkeye
ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
|
Re: Timagelist -> Timage
ich hab im forum mal geschaut aber das problem war immer
das nur ein bild ausgewählt werden konnte.. genauso ist es bei ImageList1.GetBitmap(0, Image1.Picture.Bitmap); |
Re: Timagelist -> Timage
Ok, hier noch ein Versuch:
Delphi-Quellcode:
Gruß Hawkeye
var
i : Integer; begin with ImageList1 do begin Image1.Width := Count * Width; Image1.Height := Height; for i := 0 to Count - 1 do Draw (Image1.Canvas, i * Width, 0, i); end; end; |
Re: Timagelist -> Timage
ich würd noch nen Sleep reinmachen, oder gleich nen Timer nutzen. Sonst sieht man nähmlich nicht wirklich was.
|
Re: Timagelist -> Timage
Zitat:
Gruß Hawkeye |
Re: Timagelist -> Timage
mit dem sleep hatte ich auch schon getestet nur war da nicht wirklich eine veränderung
|
Re: Timagelist -> Timage
Zitat:
kennst du nicht das prinzip einer imagelist? ist doch vom prinzip her wie ein animiertes gif. (okay ist weit hergeholt aber dient zum verstehen des sachverhaltes) |
Re: Timagelist -> Timage
Zitat:
Ich würde einfach folgenden Code in einen Timer packen:
Delphi-Quellcode:
ImageList1.GetBitmap(i, Image1.Picture.Bitmap);
if i<ImageList1.count then inc(i) else i:=0; |
Re: Timagelist -> Timage
passt net. habs mehrmals getestet
vor allem getbitmap von imagelist?? das picture soll doch ein bitmap bekommen! |
Re: Timagelist -> Timage
Hallo Daniel,
mir ist die Arbeitsweise einer ImageList sehr wohl bekannt, dir offensichtlich nicht. Falls doch, dann verstehe ich deine Fragen in diesem Thread nicht. In Beitrag #5 wolltest du wissen, wie man die Bilder einer ImageList in einem TImage anzeigen kann. Genau dies habe ich dir mit meinem Code zeigen wollen. Mit den Hinweisen der anderen Teilnehmer hast du nun eigentlich alle Informationen, um dein Problem zu lösen. Gruß Hawkeye |
Re: Timagelist -> Timage
Bei mir funktioniert das so wunderbar:
Delphi-Quellcode:
Einfach einen Timer, eine gefüllte Imagelist und ein TImage auf die Form und den Code ins OnTimer des Timers packen.
procedure TForm1.Timer1Timer(Sender: TObject);
begin Image1.Picture.Assign(nil); ImageList1.GetBitmap(i, Image1.Picture.Bitmap); if i<ImageList1.count-1 then inc(i) else i:=0; end; Der Timer sollte nicht zu schnell eingestellt werden. ;) Edit: Zitat:
|
Re: Timagelist -> Timage
über den letzten kommentar von dir sage ich mal nix...
im bezug auf den timer: das habe ich probiert mit einem interval von 100000. ;) funzt trotzdem nicht.
Delphi-Quellcode:
...
i:=0; Image1.Picture.Assign(nil); ImageList2.GetBitmap(i, Image1.Picture.Bitmap); if i<ImageList2.count then inc(i) else i:=0; //Das steht im Timer: var i:byte; begin I:=0; Image1.Picture.Assign(nil); ImageList2.GetBitmap(i, Image1.Picture.Bitmap); if i<ImageList2.count-1 then inc(i) else i:=0; |
Re: Timagelist -> Timage
Eine ImageList stellt kein GIF dar.
Eine ImageList ist nichts anderes als eine Klasse, die mehrere Bilder verwaltet. Wie das intern gelöst ist (Array, Liste, Binärbaum) weiß ich nicht, das ist allerdings auch egal. Eine ImageList kann man für animierte Bilder nutzen. Allerdings ist sie nicht (bzw. nicht ausschließlich) dafür gedacht. Man kann darin prima auch eine Art DiaShow basteln (so hatte ich deine Frage auch zuerst verstanden). Oder beispielsweise sämtliche Sprites für ein 2D-Spiel speichern. |
Re: Timagelist -> Timage
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Edit: Dein Fehler ist, dass du i jedesmal wieder auf Null setzt und, dass i eine lokale Variable ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 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 by Thomas Breitkreuz