Главная страница
    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.054 c
1-1168853543
DevilDevil
2007-01-15 12:32
2007.03.11
Прокрутить форму (ScrollBy(), ScrollWindow() )


4-1162292887
dmirror
2006-10-31 14:08
2007.03.11
ProcessMessages


15-1171465263
Ученик чародея
2007-02-14 18:01
2007.03.11
JavaScript


3-1166345336
VadimSpb
2006-12-17 11:48
2007.03.11
DBCC CHECKDB, DBCC DBREINDEX


15-1171596526
Slider007
2007-02-16 06:28
2007.03.11
С днем рождения ! 16 февраля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский