Форум: "KOL";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизСоздание BitBtn-кнопки в KOL. Найти похожие ветки
← →
Alexei6021 (2006-05-06 12:54) [0]Здравствуйте! Подскажите, пожалуйста, как создать BitBtn-кнопку, если можно, приведите пример. Я нашел такое описание:
function NewBitBtn( AParent: PControl; const Caption: String; Options: TBitBtnOptions; Layout: TGlyphLayout; GlyphBitmap: HBitmap; GlyphCount: Integer ): PControl;
Только никак не могу разобраться со свойством GlyphBitmap: HBitmap.
← →
ECM © (2006-05-06 13:30) [1]MSDN: HBITMAP Handle to a bitmap.
Если в относительно объектов KOL то это - TBitmap.Handle
← →
ECM © (2006-05-06 13:40) [2]Если картинка находится в ресурсах загружаемого модуля
BitBtn1 := NewBitBtn( Form, "BitBtn1", [ ], glyphLeft, LoadBmp( hInstance, "BITBTN1_BITMAP", Result ), 1 );
← →
Alexei6021 (2006-05-06 17:53) [3]Пишу такую строку:
BitBtn1:=NewBitBtn(Bparam,"",[bboNoCaption],glyphOver, LoadBmp( hInstance, "e:\vv.bmp", Result ),1).SetSize(25,25).PlaceDown.Shift(20,15);
Но либо картинку не находит, либо я не знаю.
Переменная Result:Pobj просто объявлена и ничему не равна.
Что опять не так? (Напомню, это для KOL)
← →
ECM © (2006-05-06 19:11) [4]Неужели нельзя внимательно почитать и подумать :)
> ECM © (06.05.06 13:40) [2]
> Если картинка находится в ресурсах загружаемого модуля
> Но либо картинку не находит
Конечно - откуда в ресурсах модуля картинка с именем ресурса "e:\vv.bmp"?
Если картинка лежит отдельно - то её надо предварительно загрузить. Например так:var
BitBtn: PControl;
B: PBitmap;
begin
B := NewBitmap(100,100);
B.LoadFromFile("C:\WINDOWS\Blue Lace 16.bmp");
BitBtn := NewBitBtn(Form,"BitBtn",[],glyphLeft,B.Handle,1);
...
← →
Vladimir Kladov (2006-05-06 21:34) [5]совет: поставить MCK и а) не париться б) либо смотреть как делает MCK и копировать его вызовы в свой чистый проект.
← →
YDS (2006-06-09 17:40) [6]По ходу тоже возник вопрос: подцепляю к BitBtn битмап картинку, представляющую из себя изображение на белом фоне, а на кнопке этот белый фон остается белым, т.е. непрозрачным. Левый нижний пиксель в битмапе белый, т.е. если использую ту же картинку на VCL SpeedButton, то все OK - фон прозрачный. Или тут нужно отдельно маску каким-то образом задавать? Каким?
← →
parovoZZ © (2006-06-11 21:40) [7]А вообще реально сделать кнопку прозрачной?
← →
YDS (2006-06-15 16:43) [8]Ау, гуру, может кто ответит на 2 последних вопроса?
← →
ECM © (2006-06-15 17:23) [9]
> А вообще реально сделать кнопку прозрачной?
Да
> Ау, гуру, может кто ответит на 2 последних вопроса?
Да, я могу ... (хотя и не гуру)
Ответил? :)
А если серьёзно - загоните картинку в ImageList а его прикрутите к BitBtn. Это самый простой (для MCK) способ.
← →
parovoZZ © (2006-06-17 06:34) [10]А если ли из dll?
← →
YDS (2006-06-17 11:29) [11]
> А если серьёзно - загоните картинку в ImageList а его прикрутите
> к BitBtn. Это самый простой (для MCK) способ.
Спасибо, помогло.
Но я человек настырный, а потому еще вопрос: отчего KOL-овский BitBtn не хочет темы WinXP воспринимать - кнопа, как была серым квадратом, так этим квадратом и остается, не смотря на все манифесты. Как ее заставить быть красивой?
← →
ECM © (2006-06-17 12:21) [12]> отчего KOL-овский BitBtn не хочет темы WinXP воспринимать
Потому, что это кнопка с собственной отрисовкой BS_OWNERDRAW. Рисует KOL (а не Windows). Но код отрисовки обычный без использования тем. Можно попробовать доделать - примерно как это сделано для GRAPHCTL_XPSTYLES (BitBtn в графических контролах, к сожалению, отсутствует)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c