Вниз
Скачать: CL | DM;

Шрифт в зеркале   Найти похожие ветки 

← →
Danger ©   (2007-07-01 11:04) [0]

Как правильно задавать шрифт в зеркале компонента, в режиме design-time? Что нужно написать в зеркальном классе, чтобы при бросании моего KOL-компонента на форму у него устанавливался шрифт соответствующего KOLForm? И чтобы при изменении в designtime шрифта KOLForm менялся шрифт и у моего контрола? (примерно так, как у KOLButton, KOLLabel).


← →
Dimaxx ©   (2007-07-02 14:03) [1]

По умолчанию все контролы принимают атрибуты шрифта контрола, на котором располагаются. Есть свойство ParentFont. Оно при создании выставляется в TRUE.


← →
danger ©   (2007-07-04 06:31) [2]


> Dimaxx ©   (02.07.07 14:03) [1]
> По умолчанию все контролы принимают атрибуты шрифта контрола,
>  на котором располагаются.

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

Контрол создается шрифтом VCL-ной формы-подложки, не учитывая шрифт KOLForm, имеющийся на форме. Соответственно, при изменении шрифта KOLForm шрифт для зеркального контрола не изменяется. А я хочу, чтоб было как у KOLButton - при изменении шрифта KOLForm изменяется шрифт кнопки (если ParentFont = true). Как это сделать?

Я перекрываю SetFont (чтобы перерисовывать контрол, когда изменяется шрифт контрола в диспетчере), наверное в этом проблема? Но вызов родительского обработчика (inherited) не помогает.

Еще вопрос насчет шрифтов. В дизайн-тайме используется отрисовка контрола средствами VCL (и класс VCL TFont, экземпляру которого присваиваются атрибуты TKOLFont). Если используется стандартный шрифт, средствами vcl он отображается иначе, чем шрифт на прочих контролах. Если задать другой шрифт (Courier, Times New Roman, Tahoma) - разницы в отрисовке KOLFont и TFont нет никакой. Почему?


← →
danger ©   (2007-07-06 15:00) [3]

Ну что, никто не знает? МСК-специалисты, помогите советом ...


← →
Vladimir Kladov   (2007-07-06 15:13) [4]

Режим wysiwig с KOLCtrlWrappers не работает. Рисуют себя контролы сами. Если вас не устраивает рисовка, смотрите Paint в некоторых зеркалах типа TKOLLabel. Там вызывается PrepareCanvasFontForWYSIWIGPaint, там всё и делается, что касается шрифтов.


← →
Danger ©   (2007-07-07 11:14) [5]


> Vladimir Kladov   (06.07.07 15:13) [4]
> Режим wysiwig с KOLCtrlWrappers не работает.

Я не использую врапперы вообще, а применяю отрисовку контрола в дизайн-тайме средствами VCL. Врапперы глючат, проще изначально делать VCL отрисовку.

> Там вызывается PrepareCanvasFontForWYSIWIGPaint,

Спасибо, Владимир. Это частично решило проблему, но буду смотреть еще.


← →
Danger ©   (2007-07-07 15:11) [6]

По ходу возник еще один вопрос:

когда изменяется parentFont true/false, мне надо дополнительно перерисовывать контрол (метод SetParentFont для TKOLControl меня не устраивает). Но SetParentFont перекрыть нельзя (статический метод класса TKOLControl). Как можно выполнить какие-нибудь действия, когда изменится parentFont?


← →
Danger ©   (2007-07-09 18:50) [7]


> Danger ©   (07.07.07 15:11) [6]
> Как можно выполнить какие-нибудь действия, когда изменится parentFont?

Все еще не сообразил .... будет пока без дополнительной перерисовки. А все-таки хотелось бы.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
11-1169247642
Моторокер
2007-01-20 02:00
2008.02.24
TKOLTrayIcon и подсказки в трее (balloons, not hints)


15-1200822319
Черный Шаман
2008-01-20 12:45
2008.02.24
И когда же этот CodeGear(ака Borland) сделают Delphi 64bit?


2-1201450575
Kiril
2008-01-27 19:16
2008.02.24
Чем заменить DBGrid?


15-1201188802
Sergei
2008-01-24 18:33
2008.02.24
Версия BIOS


2-1201595817
vegarulez
2008-01-29 11:36
2008.02.24
Вопрос про БД (Access). Как "сжать и восстановить" БД из под Д?




   Наверх