![]() |
Transparenz in TImage mit WinXP SP2 versagt ?
Mir ist aufgefallen, daß in Anwendungen in welchen TImages mit Transparenz dargestellt
werden, seit SP2 in WinXP die Transparenz nicht mehr transparent ist. Hat jemand von Euch ne Ahnung an was das liegt. Unter Win2003 Server ist es auch so. Programme sind mit Delphi 5 compiliert. |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Liste der Anhänge anzeigen (Anzahl: 2)
Hier noch zwei Screenshots. Einmal unter XP SP1 und einmal unter XP SP2.
Das Bitmap wird über ne Imagelist mit Hilfe von
Delphi-Quellcode:
in das Image geladen.
ImageList1.GetBitmap(0,image1.picture.bitmap);
|
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ich habe das mit folgendem Code (irgendwo mal im Netz gefunden) hinbekommen, allerdings müssen dann die Bilder erst zur laufzeit in die Imagelist geladen werden!
Delphi-Quellcode:
uses Consts, CommCtrl;
Procedure ConvertTo32BitImageList(Const ImageList: TImageList); Const Mask: Array[Boolean] Of Longint = (0, ILC_MASK); Var TemporyImageList: TImageList; Begin If Assigned(ImageList) Then Begin TemporyImageList := TImageList.Create(Nil); Try TemporyImageList.Assign(ImageList); With ImageList Do Begin ImageList.Handle := ImageList_Create(Width, Height, ILC_COLOR32 Or Mask[Masked], 0, AllocBy); If Not ImageList.HandleAllocated Then Begin Raise EInvalidOperation.Create(SInvalidImageList); End; End; ImageList.AddImages(TemporyImageList); Finally TemporyImageList.Free; End; End; End; procedure TForm1.Button1Click(Sender: TObject); var bmp: TBitmap; begin ConvertTo32BitImageList(ImageList1); ImageList1.Clear; bmp := TBitmap.Create; try bmp.LoadFromFile('X:\images\glyFXfree\delete24_h.bmp'); ImageList1.Add(bmp, bmp); finally bmp.Free; end; ImageList1.GetBitmap(0,image1.picture.bitmap); ImageList1.GetBitmap(0,image2.picture.bitmap); end; |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hast du dein Proggi auch schon mal mit anderen Delphi Versionen compiliert und es damit getestet?
|
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Habs auch schon mit Delphi 7 probiert - selbes Ergebnis.
Und Bilder zur Laufzeit mittels
Delphi-Quellcode:
in die ImageList zu laden kommt bei mir nicht in Frage... Sorry. Aber danke
bmp.LoadFromFile('X:\images\glyFXfree\delete24_h.bmp');
für den Vorschlag. |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Zitat:
hätte noch einen anderen Vorschlag, nimm doch statt aus der ImageList die Bilder aus einer Resourcendatei... |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Also wenn dieser Code daoben wirklich funktioniert, dann einfach bei Programmstart die Bilder der ImageList in eine temporäre ImageList kopieren, die ImageList mit dem Code auf 32 Bit umstellen, dann die Bilder wieder von der Temporären ist die umgebaute ImageList eifügen und schon sollte es auch gehn, oder eben die Resourcen verwenden -.-
|
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Hi!
Hat sich hier irgendwas ergeben? Habe gerade dasselbe Problem: Die Transparenz der ImageList funktioniert mit 32x32 Bitmaps, aus einer Ressource geladen, nicht :( |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Probiert einfach mal dieses aus.
Delphi-Quellcode:
Der Standardwert bei Delphi ist nämlich auf true gesetzt.
MeineImagelist.Masked := false;
ciao Edit: 1. Ich meien bevor die Bilder in die ImageList geladen werden. 2. In der IDE könnt ihr das natürlich auch schon einstellen. |
Re: Transparenz in TImage mit WinXP SP2 versagt ?
Hmm, das ändert leider auch nichts.
Edit: Auch nicht wenn ich es in der IDE ändere. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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