Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.037 c
15-1171367145
pasha_golub
2007-02-13 14:45
2007.03.11
Не могу достучаться в локальную сеть


15-1171294889
oldman
2007-02-12 18:41
2007.03.11
Онищенко в очередной раз призвал россиян бросить пить


11-1142601519
sff
2006-03-17 16:18
2007.03.11
передача данных в Excel


15-1171530503
Лёша
2007-02-15 12:08
2007.03.11
Убрать неиспользуемые юниты в uses


15-1171350596
Леприкон
2007-02-13 10:09
2007.03.11
Компонент для панели поиска





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский