Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Timagelist -> Timage (https://www.delphipraxis.net/70777-timagelist-timage.html)

danku 14. Jun 2006 15:03

Re: Timagelist -> Timage
 
mit dem sleep hatte ich auch schon getestet nur war da nicht wirklich eine veränderung

danku 14. Jun 2006 17:43

Re: Timagelist -> Timage
 
Zitat:

Zitat von Hawkeye219
Ok, hier noch ein Versuch:

Delphi-Quellcode:
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;
Gruß Hawkeye

was hat das für einen sinn wenn nebeneinander die bilder angeordnet werden?
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)

TheAn00bis 14. Jun 2006 17:51

Re: Timagelist -> Timage
 
Zitat:

Zitat von Hawkeye219
Ok, hier noch ein Versuch:

Delphi-Quellcode:
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;
Gruß Hawkeye

Inwiefern das ein animiertes Gif wiederspiegelt verstehe ich ehrlich gesagt auch nicht.

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;

danku 14. Jun 2006 17:56

Re: Timagelist -> Timage
 
passt net. habs mehrmals getestet
vor allem getbitmap von imagelist??
das picture soll doch ein bitmap bekommen!

Hawkeye219 14. Jun 2006 18:08

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

TheAn00bis 14. Jun 2006 18:32

Re: Timagelist -> Timage
 
Bei mir funktioniert das so wunderbar:

Delphi-Quellcode:
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;
Einfach einen Timer, eine gefüllte Imagelist und ein TImage auf die Form und den Code ins OnTimer des Timers packen.
Der Timer sollte nicht zu schnell eingestellt werden. ;)

Edit:

Zitat:

Zitat von danku
vor allem getbitmap von imagelist??
das picture soll doch ein bitmap bekommen!

Die Mühe eine Methode in der Hilfe nachzusehen machst du dir aber nicht?

danku 17. Jun 2006 17:36

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;

3_of_8 17. Jun 2006 17:42

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.

TheAn00bis 17. Jun 2006 17:54

Re: Timagelist -> Timage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von danku
ü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.

Beispiel gefällig? Siehe Anhang.

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 00:51 Uhr.
Seite 2 von 2     12   

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