Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bilder mehrmals aus TImageList in TImage laden (https://www.delphipraxis.net/66283-bilder-mehrmals-aus-timagelist-timage-laden.html)

Matze 27. Mär 2006 20:37


Bilder mehrmals aus TImageList in TImage laden
 
Hi,

es gibt hier zwar ähnliche Themen, doch dieses Problem habe ich nicht entdecken können.
Ich lade Bitmaps aus eine ImageList in ein Image und zwar folgendermaßen:

Delphi-Quellcode:
ImageList.GetBitmap(Index, ImgConnect.Picture.Bitmap);
Das funktioniert wunderbar auch mit der Transparenz. Doch wenn ich in das selbe Image ein anderes Bitmap laden möchte, dann muss ich das Image ja irgendwie wieder zurücksetzen, das habe ich so gemacht:

Delphi-Quellcode:
ImgConnect.Picture.Assign(nil);
Lass ich das weg, ändert sich das Bild nicht, doch mit diesem Code funktioniert die Transparenz nicht mehr, selbst wenn ich diese über den Code

Delphi-Quellcode:
ImgConnect.Picture.Bitmap.Transparent := true;
ImgConnect.Picture.Bitmap.TransparentColor := clWhite;
manuell setze. Weiß jemand von euch, was ich falsch mache?

turboPASCAL 27. Mär 2006 20:41

Re: Bilder mehrmals aus TImageList in TImage laden
 
Ich verstehe nicht gans was du machen möchtest. (liegt nicht an dir, ist für mich zu spät heute ;) )
Was möchtest du machen ?
Du kannst doch ein und das selbe Image aus der Liste holen und benuzten.

Matze 27. Mär 2006 20:46

Re: Bilder mehrmals aus TImageList in TImage laden
 
Zitat:

Zitat von turboPASCAL
Ich verstehe nicht gans was du machen möchtest. (liegt nicht an dir, ist für mich zu spät heute ;) )

Oder ich hab's einfach schlecht erklärt. ;)

Ich habe ein Programm, mit dem ich mich in einem Internetportal anmelde. Bin ich angemeldet, soll das Image ein Bild mit dem Abmelden-Symbol haben, wenn ich ausgeloggt bin, dann zum Anmelden.
Es haldelt sich also um 2 verschiedene Bitmaps, die sich in der ImageList befinden, aber um ein TImage, in dem das Bitmap dargestellt werden soll.

turboPASCAL 27. Mär 2006 21:01

Re: Bilder mehrmals aus TImageList in TImage laden
 
Solle eigentlich ein ImageXY.Assign(BitmapXY) reichen. Speichere dazu das Bitmap aus der Imagelist in einem Themp.-Bitamp.

Matze 27. Mär 2006 21:05

Re: Bilder mehrmals aus TImageList in TImage laden
 
Hi, danke, doch geht das auch nicht. Ich habe es nun so:

Delphi-Quellcode:
ImgConnect.Picture.Bitmap.Transparent := true;
ImgConnect.Picture.Bitmap.TransparentColor := clWhite;

tempBmp := TBitmap.Create;
try
  ImageList2.GetBitmap(Index, tempBmp);
  ImgConnect.Picture.Assign(TempBmp);
finally
  FreeAndNil(tempBmp);
end;

turboPASCAL 27. Mär 2006 21:09

Re: Bilder mehrmals aus TImageList in TImage laden
 
Sollte es tun:

Delphi-Quellcode:
function GetFromImageList(AnyImageList: TImageList; IconIndex: Integer): TBitmap;
var Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  AnyImageList.GetBitmap(IconIndex, Bmp);
  GetFromImageList := Bmp;
  Bmp.Free;
end;
...

begin
  ImageXYZ.Assign(GetFromImageList(ImageList1, i));
...

Matze 27. Mär 2006 21:46

Re: Bilder mehrmals aus TImageList in TImage laden
 
Hi, dein Code geht nur, wenn man

Delphi-Quellcode:
Bmp.Free;
weglässt, seltsam. Aber transparent ist es bei mir immer noch nicht, das hat nichts verändert. Vielleicht habe ich auch irgendwo anders etwas verstellt, ich denke aber nicht.

turboPASCAL 27. Mär 2006 21:48

Re: Bilder mehrmals aus TImageList in TImage laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jaja, klar. Ich sag doch, zu spät.

Hanang:

Matze 28. Mär 2006 11:34

Re: Bilder mehrmals aus TImageList in TImage laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

schön und gut danke, aber dein Beispiel zeigt mir die Bildchen auch mit weißem Hintergrund (s. Anhang). Ich habe irgendwo einmal gelesen, es könne mit dem XP Service Pack 2 zusammenhängen, doch kann ich mir das eigentlich nicht vorstellen. :gruebel:

Btw: Eine globale Variable dafür möchte ich eigentlich auch nicht verwenden müssen. :stupid:

turboPASCAL 28. Mär 2006 16:19

Re: Bilder mehrmals aus TImageList in TImage laden
 
Hm, ja möglich... seltsam. :gruebel:

Das hättest du auch gleich sagen können. :mrgreen: :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 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