Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изображение с прозрачностью на форме [Lazarus, Windows]


Turbidit ©   (2007-12-09 12:55:00) 

Хочу просто отобразить некое изображение на форме (формат 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   (2007-12-16 19:24:00) [1]

Up


Jon   (2007-12-10 06:38:00) [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   (2007-12-10 03:01:00) [3]

Ссылка не окрывалась, правильная так: http://www.turbid.land.ru/tmp/picture.jpg

КОЛ не поддерживает 24-битную графику?


Наверх

Титульная страница Поиск, карта сайта Написать письмо