![]() |
PNGImageCollection Bild in ICON laden
Ich arbeite mich gerade in TPNGImageList und Collection ein.
Ich habe PNGImageCollection entdeckt aber blicke nicht ganz durch wie ich dort ein PNG mittels des Namens laden kann. Ich nutze zwar einen class helper aber das funktioniert nicht, da die Typen inkompatibel sind.
Delphi-Quellcode:
procedure TPngImageCollectionUtils.LoadImageByName(const Name: string; Icon: TIcon);
begin Icon := Items[2]; end; |
AW: PNGImageList mit mehreren Unterlisten
Edit:
doch nicht erledigt. Habe zwar hier eine Antwort gefunden ![]() aber ich weiß trotzdem nicht wie ich ein Icon zurückgebe. Beispielsweise um ein PNG aus der Collection zu laden und als Programmicon zu setzen. |
AW: PNGImageCollection Bild in ICON laden
Ich nutze diese Komponente nicht aber so würde ich ohne Vorgehen (mit TImageList):
Delphi-Quellcode:
var
Img: TImage; BmImg: TBitmap; Bmp: TBitmap; BmpMask: TBitmap; IconInfo: TIconInfo; Ico: TIcon; begin Img := TImage.Create(nil); Img.Picture.LoadFromFile(... BmImg := TBitmap.Create; BmImg.Assign(Img.Picture.Graphic); Img.Free; Bmp := TBitmap.Create; Bmp.SetSize(ImageList1.Width, ImageList1.Height); SetStretchBltMode(Bmp.Canvas.Handle, HALFTONE); StretchBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, BmImg.Canvas.Handle, 0, 0, BmImg.Width, BmImg.Height, SRCCOPY); BmImg.Free; BmpMask := TBitmap.Create; BmpMask.Canvas.Brush.Color := clBlack; BmpMask.SetSize(Bmp.Width, Bmp.Height); FillChar(IconInfo, SizeOf(IconInfo), 0); IconInfo.fIcon := True; IconInfo.hbmMask := BmpMask.Handle; IconInfo.hbmColor := Bmp.Handle; Ico := TIcon.Create; Ico.Handle := CreateIconIndirect(IconInfo); ImageList1.AddIcon(Ico); Bmp.Free; BmpMask.Free; Ico.Free; // calls DestroyIcon end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 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