| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 |
|
-virus-
Регистрация: 18.10.2002
Сообщения: 211
![]() |
Как добавить 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 там где допустим на toolbare градиент есть) под иконкой на кнопке виден квадрат. Чувствую что можно это сделать с pngimage. Подскажите если кто уже пробовал? Может есть другой способ. (иконки с альфа каналом не пойдет, не работает под 98 и ранних win). Как вариант можно перехватить ToolBar1AdvancedCustomDrawButton кнопки toolbar и рисовать состояние hot как-нибудь по своему, как это сделать? |
|
|