Mam uchwyt do ikony w zmiennej
Icon: hIcon;
Wykonuję:
procedure HIconToBitmap(Icon: HICON; Bitmap: TBitmap);
begin
DrawIconEx(Bitmap.Canvas.Handle, 0, 0, Icon, 16, 16, 0, 0, DI_NORMAL);
end;
procedure TForm1.Button1(Sender: TObject);
var
bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try;
HIconToBitmap(Icon, Bmp);
Image1.Picture.Bitmap.Assign(bmp);
finally
Bmp.Free;
end;
end;
Ale komponent Image1. jest pusty. Natomiast jak zrobię:
Image1.Picture.Icon.Handle := Icon;
To obrazek się podstawia. Co robię nie tak?
Zrobiłem w ten sposób:
Bmp := TBitmap.Create;
MyIcon:=TIcon.Create;
try;
MyIcon.Handle:=Icon;
bmp.Width := MyIcon.Width;
bmp.Height := MyIcon.Height;
bmp.Canvas.Draw(0, 0, MyIcon ) ;
// HIconToBitmap(Icon, Bmp);
// Image1.Picture.Bitmap := nil;
Image1.Picture.Bitmap.Assign(bmp);
// Bmp.Handle = HBITMAP
// Bmp.Canvas.Handle = HDC
finally
MyIcon.Free;
Bmp.Free;
end;
i działa, ale nie podoba mi się to, że muszę konwertować do ikony a później do BMP....
TBitmap
- podałem niżej sposób na poprawne użycie osobnej klasy;