Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   TImage mit Bild aus ImageList füllen (https://www.delphipraxis.net/161007-timage-mit-bild-aus-imagelist-fuellen.html)

Jazzman_Marburg 12. Jun 2011 11:30

TImage mit Bild aus ImageList füllen
 
Hallo Gemeinde.
Ich stehe mir wieder mal selbst auf den Füßen:
Ich möchte zur Laufzeit einer TImage-Komponente ein Bild aus einer ImageList zum Anzeigen übergeben. Ich dachte so müßte es klappen:

Delphi-Quellcode:
myImageList.GetBitmap(0, myImage.Picture.Bitmap);
Aber es tut sich nix -- der Code wird durchlaufen aber ich sehe kein Bild. Auch ein myImage.Repaint hilft nicht weiters. In der ImageList befindet sich nur ein Bitmap (256x256 Pixel groß).

Was mache ich falsch? Habt ihr eine Idee?

Vielen Dank & Gruß
Jazzman

mkinzler 12. Jun 2011 11:32

AW: TImage mit Bild aus ImageList füllen
 
Schau dir mal TImageList.Draw() an

Jazzman_Marburg 12. Jun 2011 11:44

AW: TImage mit Bild aus ImageList füllen
 
Hallo!

Nützt auch nix:

Delphi-Quellcode:
myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0,0);
:pale:

Ich stehe wirklich auf dem Schlauch.

Jazzman

Jazzman_Marburg 12. Jun 2011 12:07

AW: TImage mit Bild aus ImageList füllen
 
Kommado zurück!
Es funtioniert sehr wohl:

myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0 ,0);

(Ich hatte gerade intern ein kleines techniches Problem - vulgo: "Tomaten auf den Augen").

Aber trotzdem hätte ich eine kleine Nachfrage:

Weshalb klappt folgendes nicht:
myImageList.GetBitmap(0, myImage.Picture.Bitmap);

Ich frage deshalb nach, weil ich zu einem späterem Zeitpunkt die Bitmap in myImage weitergeben muß -- aber mit
myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0 ,0);
habe ich ja keine Bitmap. Sondern nur eine Zeichnung auf dem Canvas des myImages.

Vielen Dank
Jazzman

Sir Rufo 12. Jun 2011 12:11

AW: TImage mit Bild aus ImageList füllen
 
Zitat:

Zitat von Jazzman_Marburg (Beitrag 1105921)
Delphi-Quellcode:
myImageList.GetBitmap(0, myImage.Picture.Bitmap);

Genau so sollte das eigentlich funktionieren.
So mache ich das auch, allerdings benutze ich
Delphi-Quellcode:
ImageList.GetIcon( Index, Image.Picture.Icon );
, weil dann auch das mit der Transparenz besser klappt.
Intern wird aber letztendlich immer
Delphi-Quellcode:
TPicture.SetGraphic
aufgerufen. Somit spielt es eigentlich keine Geige.

Das Malen auf dem Canvas halte ich hier eher für ungeschickt, da man dieses ja ständig (selber) wiederholen müsste.

Sonst häng doch mal eine kleines Beispiel-Projekt an, dann schau ich da mal drüber.
Kann eigentlich nur eine Kleinigkeit sein :)

himitsu 12. Jun 2011 12:18

AW: TImage mit Bild aus ImageList füllen
 
Delphi-Quellcode:
ImageList1.Draw(Image1.Picture.Bitmap.Canvas, 0, 0, 0);
.
Kann garnicht funktionieren, wenn noch kein Bitmap im Picture drin war,
denn der Lesezugriff auf Picture.Bitmap würde in diesem Fall ein neue TBitmap erstellen, mit den Seitenlängen von 0.
Und wenn man in das Bild etwas reinmalt, dann sieht man natürlich nicht viel.

Delphi-Quellcode:
ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
.
Geht bei mir ohne Probleme, da GetBitmap die Größe des TBitmap anpaßt.

Jazzman_Marburg 12. Jun 2011 13:30

AW: TImage mit Bild aus ImageList füllen
 
Hallo zusammen!

Ja, es funktionert tatsächlich auch mit:

ImageList1.GetBitmap(0, Image1.Picture.Bitmap);

Ich hab keine Ahnung, was da vorher so schief war: Ich habe jedenfalls zwischenzeitlich die Größen angepasst. Weiss nicht ob das der Grund war...

Vielen Dank an alle!

Gruß
Jazzman

H3llsing 5. Okt 2012 10:43

AW: TImage mit Bild aus ImageList füllen
 
Hallo zusammen,

ich habe das gleiche Problem und nix funktioniert.

Ich verwende ein normales TImage unter Delphi2010 mit einer TImagelist die PNG dateien mit 32 farbtiefe und transparent flag gesetzt.
Nach setzten mit
Delphi-Quellcode:
ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
wird nur die Bitmap transparent, ist das transparent flag aus wird das bitmap nach dem belegen schwarz.

hat irgendjemand einen Rat für mich ?!

Bummi 5. Okt 2012 10:55

AW: TImage mit Bild aus ImageList füllen
 
GetIcon ....

H3llsing 7. Okt 2012 12:43

AW: TImage mit Bild aus ImageList füllen
 
Es blieb auch mit getIcon schwarz.

Das Problem lag an der einstellung ImageType der Timagelist!
irgendwie stand sie auf itMask, sie muss aber auf itImage stehen =).

Und mit getIcon wird der hintergrund auch transparent!
Vielen Dank bummi =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Seite 1 von 2  1 2      

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