Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: PNGImageCollection Bild in ICON laden

  Alt 6. Nov 2018, 07:59
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat