Създаване на бутон BitBtn в KOL
Здравейте! Моля, кажете ми как да създам бутон BitBtn, ако е възможно, дайте пример. Намерих това описание: function NewBitBtn( AParent: PControl; const Caption: String; Options: TBitBtnOptions; Layout: TGlyphLayout; GlyphBitmap: HBitmap; GlyphCount: Integer): PControl;
Просто не мога да разбера свойството GlyphBitmap: HBitmap.
MSDN: HBITMAP Манипулатор на растерно изображение. Ако е по отношение на KOL обекти, тогава това е TBitmap.Handle
Ако изображението е в зареждаем модул BitBtn1 := NewBitBtn( Form, "BitBtn1", [ ], glyphLeft, LoadBmp( hInstance, "BITBTN1_BITMAP", Result ), 1);
Пиша следния ред: BitBtn1:=NewBitBtn(Bparam,"",[bboNoCaption],glyphOver, LoadBmp( hInstance, "e:\vv.bmp", Result ),1).SetSize(25,25).PlaceDown.Shift(20,15);
Но или не намира картината, или аз не знам. Променливата Result:Pobj е просто декларирана и равна на нищо. Какво не е наред отново? (Запомнете, това е за KOL)
съвет: инсталирайте MCK и a) не се потете b) или гледайте как MCK прави и копирайте неговите извиквания във вашия чист проект.
По пътя изникна и един въпрос: закачам растерно изображение към BitBtn, което е изображение на бял фон, а на бутона този бял фон остава бял, т.е. непрозрачен. Долният ляв пиксел в растерното изображение е бял, т.е. ако използвам същата картина на VCL SpeedButton, тогава всичко е наред - фонът е прозрачен. Или е необходимо маската да се настрои отделно по някакъв начин? Какво?
Какво ще кажете да направите бутона прозрачен?
Ай, гуру, може ли някой да отговори на последните 2 въпроса?
> Наистина ли е възможно да направите бутона прозрачен?Да> Хей гуру, може ли някой да отговори на последните 2 въпроса?Да, мога. (въпреки че не е гуру) Отговорено? :)
Но сериозно -закарайте изображението в ImageList и го закрепете към BitBtn. Това е най-лесният (за MCK) начин.
И ако от dll?
> Но сериозно - закарайте снимката в ImageList и я прецакайте > към BitBtn. Това е най-лесният (за MCK) начин.
Благодаря, помогна. Но аз съм упорит човек и затова друг въпрос: защо KOL-ovsky BitBtn не иска да приеме темата на WinXP - бутонът, както беше сив квадрат, си остава този квадрат, въпреки всички манифести. Как мога да я направя красива?
> защо KOL-ovsky BitBtn не иска да приеме темата WinXPЗащото това е бутон със собствен чертеж BS_OWNERDRAW. Рисува KOL (не Windows). Но кодът за изобразяване е нормален без използването на теми. Можете да опитате да го завършите - нещо подобно беше направено за GRAPHCTL_XPSTYLES (BitBtn за съжаление не е наличен в графичните контроли)