![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
png с альфа каналом на кнопке toolbar'а [D6, D7, Win95/98, WinXP]
Tirex © (2005-02-28 21:10:00)Как добавить png с альфа каналом на кнопку toolbar'а?
Такого рода вопросы уже попадались, я их прочел, но ответа на свой вопрос так и не нашел.
Нашел одно решение но это не совсем то что надо
использовал модуль pngimage ( http://pngdelphi.sourceforge.net)
procedure LoadIcons;
var
PNG: TPNGObject;
BMP: TBitmap;
I: integer;
dHandle: THandle;
begin
BMP := TBitmap.Create;
BMP.Width:=48;
BMP.Height:=48;
Bmp.Canvas.Brush.Color:=clBtnFace;
bmp.Canvas.FillRect(bmp.Canvas.ClipRect);
png:= TPNGObject.Create;
for i:=1 to 2 do
begin
Bmp.Canvas.Brush.Color:=clBtnFace;
bmp.Canvas.FillRect(bmp.Canvas.ClipRect);
png.LoadFromResourceID(hinstance,2000+I);
BMP.Canvas.Draw(0, 0, PNG);
Form1.imlToolbar.Add(bmp,nil);
end;
BMP.Canvas.Draw(0, 0, PNG);
Form1.imlToolbar.Add(bmp,nil);
png.free;
bmp.free;
все бы ничего, но при нестандартных темах оформления (XP) под иконкой на кнопке виден квадрат.
Чувствую что можно это сделать с pngimage. Подскажите если кто уже пробовал? Может есть другой способ. (икоки с альфа каналом не пойдет, не работает под 98 и ранних win).
Tirex (2005-03-01 20:12:00) [1]Как вариант можно перехватить onpaint кнопки и рисовать фон тем же цветом каким фон кнопки. как это сделать? Хотя если там градиент это не будет работать.