Форум: "KOL";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c