Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.13;
Скачать: CL | DM;

Вниз

Glyph для GrushButton   Найти похожие ветки 

 
Trible   (2007-02-28 10:36) [0]

Пытаюсь назначить глиф для GrushButton, пишу в KOLForm.onShow:

procedure TMainForm.KOLFormShow(Sender: PObj);
var Glyph: PBitmap;
begin
Glyph := NewDIBBitMap(0, 0, pfCustom);
Glyph.LoadFromResourceName(hInstance, "REFRESH");
Glyph.HandleType := bmDDB;
RefreshBtn.All_GlyphBitmap:= Glyph;
Glyph.Free;
end;

Но при запуске ничего не происходит (глиф не назначается). Как правильно назначить глиф для GrushButton?

p.s. ресурс битмапа, который я пытаюсь назначить глифом - существует, Glyph.SaveToFile работает :)


 
Trible   (2007-02-28 10:40) [1]

Что самое интересное, в проекте на "чистом" KOL все работает:

program GrushTest;
uses
 windows, kol, KOLGRushControls;

var Form: PControl;
   Glyph: PBitmap;
   Button: PGRushControl;
{$R Graphics.res}

begin
   Form := NewForm(nil, "Demo Application");
   Glyph := NewDIBBitMap(0, 0, pfCustom);
   Glyph.LoadFromResourceName(hInstance, "REFRESH");
   Glyph.HandleType := bmDDB;
   Button := NewGRushButton(Form, "Text");
   Button.All_GlyphBitmap := Glyph;
   Glyph.Free;
   Run(Form);
end.

Проблема - сделать средствами МСК то же самое.


 
mdv   (2007-02-28 12:12) [2]

Вот рабочий кусок выдернул, поиграйся со свойствами *Gliph*, у меня тоже были какие-то проблемы, при создании кнопки именно в MCK, сответственно пришлось руками выставлять свойства.

......
   FLogoBitmaps:= NewDIBBitmap(152*Journals.Count, 60, pf24bit);
....
   btnJournals.All_GlyphBitmap:= FLogoBitmaps;
   btnJournals.All_DrawGlyph:= True;
   btnJournals.All_GlyphWidth:= 152;
   btnJournals.All_GlyphHeight:= 60;
   btnJournals.All_GlyphItemX:= N; //номер куска битмара, всего их Journals.Count
.....


 
Trible   (2007-02-28 13:31) [3]


> Вот рабочий кусок выдернул, поиграйся со свойствами *Gliph*,
>  у меня тоже были какие-то проблемы, при создании кнопки
> именно в MCK, сответственно пришлось руками выставлять свойства.

procedure TMainForm.KOLFormShow(Sender: PObj);
var Bmp: PBitmap;
begin
Bmp:= NewDIBBitmap(24, 24, pf24bit);
Bmp.LoadFromResourceName( hInstance, "REFRESH" );
RefreshBtn.All_GlyphBitmap:= Bmp;
RefreshBtn.All_DrawGlyph:= True;
RefreshBtn.All_GlyphWidth:= 24;
RefreshBtn.All_GlyphHeight:= 24;
RefreshBtn.All_GlyphItemX:= 1;
Bmp.Free;
end;

Для моего случая (одна кнопка, глиф 24х24, в битмапе одно изображение 24х24) - не работает :( Буду смотреть еще.


 
Psychedelic ©   (2007-02-28 13:57) [4]

Было что то подобное, кинул новую кнопку и на нее назначил. Разбиратся ж неохота.


 
Trible   (2007-02-28 14:14) [5]


> Было что то подобное, кинул новую кнопку и на нее назначил.
>  Разбиратся ж неохота.

Как ни странно, помогает такой способ: создаем GrushButton, пробуем глиф на нем. Если глиф не назначается, убиваем созданную кнопку и создаем ее заново. И так до тех пор, пока очередной GrushButton не цепляет глиф :) Я не знаю, в чем там дело (т.к. все экземпляры GrushButton одинаковы). И еще: даже при таком раскладе глиф не назначается кнопке сразу, а появляется только после ее перерисовки. Лечится с помощью GrushButton.Invalidate.

p.s. Проблемы возникают только в МСК, в чистом KOL все ровно.


 
Trible   (2007-02-28 14:23) [6]

И еще проблема может быть из-за размеров кнопки: если размеры глифа с границами глифа на кнопке по высоте больше, чем кнопка, то он просто не отображается. Лучше было бы, если б он хотя бы частично отображался ...


 
homm ©   (2007-02-28 15:06) [7]

> Лучше было бы, если б он хотя бы частично отображался ...
Угу, кому-то понадобится отображать до упора глиф, кому-то до рамки поднмать, там обрезать, а кому-то до сontentoffsets только. Еще куча свойств нужна будет :) (и так уж не заню на сколько правильно их СТОЛЬКО было плодить) Нет уж!  рещил что скрывается, значит будет скрыватся. В конце концов так оно намного притнее смотртися при изсменении размеров. Кстати можешь выставить сontentoffsets глубоко отрицательными (о чем я не раз говорил), тогда глиф тоже будет скрыватся, но только когда уйдет далеко за края контрола. Но только учти, что текст тоже поплывет в зависимости от того, как он выровнен.


 
имя   (2007-08-08 22:40) [8]

Удалено модератором


 
имя   (2007-10-03 08:44) [9]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2008.07.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
15-1211954367
Slider007
2008-05-28 09:59
2008.07.13
С днем рождения ! 28 мая 2008 среда


15-1211874057
Tualatin
2008-05-27 11:40
2008.07.13
ресурсы (да они самые)


2-1213159421
DJ Kondakov
2008-06-11 08:43
2008.07.13
Вопрос по TFileStream


15-1211982202
@!!ex
2008-05-28 17:43
2008.07.13
Как построить матрицу проекции?


15-1211866893
vajo
2008-05-27 09:41
2008.07.13
Что это за загрузка файла может быть?