-
Turbidit (09.12.07 12:55) [0]Хочу просто отобразить некое изображение на форме (формат ico 24 бита). Нашел 2 способа:
1. Кладу на форму TKOLImageShow, привязываю к нему TKOLImageList с той самой иконкой.
2. Просто в свойстве TKOLImageShow.Brush.Bitmap выбираю это изображение.
Но в том и в другом случае какие-то траблы с прозрачностью фона.
Игрался с разными параметрами на обоих компонентах, но желаемого эффекта так и не достиг. Наверно, я что-то не понимаю.
Чтобы не быть голословным - вот скриншот: http://www.turbid.land.ru/tmp/picture.jpg. Первая - TImage на VCL (как должно быть). Вторая - TKOLImageShow.Brush.Bitmap. Третья - TKOLImageShow c TKOLImageList. -
Turbidit (10.12.07 03:01) [1]Ссылка не окрывалась, правильная так: http://www.turbid.land.ru/tmp/picture.jpg
КОЛ не поддерживает 24-битную графику? -
Jon © (10.12.07 06:38) [2]Use TIconInfo to convert bitmap and mask to transparent icon:program BMP2ICO;
uses
Windows, KOL;
procedure btnClick(Dummy: Pointer; Sender: PObj);
var
Icon: PIcon;
bmpMask, bmpColour: PBitmap;
IconInfo : TIconInfo;
begin
Icon := NewIcon;
Icon.Size := 16;
bmpColour := NewDIBBitmap(16,16,pf24bit);
bmpMask := NewDIBBitmap(16,16,pf1bit);
bmpColour.Canvas.Brush.Color := clRed;
bmpColour.Canvas.Pen.Color := clWhite;
bmpColour.Canvas.Ellipse(2,2,Icon.Size,Icon.Size);
bmpMask.Assign(bmpColour);
bmpMask.Convert2Mask(clBlack);
IconInfo.fIcon := True;
IconInfo.hbmMask := bmpMask.Handle;
IconInfo.hbmColor := bmpColour.Handle;
Icon.Handle := CreateIconIndirect(IconInfo);
bmpMask.Free;
bmpColour.Free;
Applet.Icon := Icon.Handle;
Icon.Free;
end;
begin
Applet := NewForm(nil,'');
NewButton(Applet,'Icon').OnClick := TOnEvent(MakeMethod(nil,@btnClick));
Run(Applet);
end. -
Turbidit (16.12.07 19:24) [3]Up