Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обойти отсутствие AutoSize у TCheckBox ?


Fay ©   (2005-07-06 18:44:00) 

Как задать ширину TCheckBox-а,  чтобы Caption точно влез, но не больше?


jack128   (2005-07-07 16:20:00) [1]

Fay ©   (07.07.05 15:58) [7]
размер всего остального (того же "квадратика")?

Делаешь скриншот, вставляешь в Paint и считаешь пиксели :-)  С темами XP наверно в сторону TThemeServices.ContentRect нужно покопать...


Fay   (2005-07-07 15:58:00) [2]

Про DrawText я в курсе, но как вычислить размер всего остального (того же "квадратика")?


AbrosimovA   (2005-07-07 15:23:00) [3]

За хелпом стоят те же смертные и грешные.


jack128   (2005-07-07 14:40:00) [4]

Хм, да, ты прав. Я несколько удивлен..
Похорошу в CM_TEXTCHANGED не напрямую вычислять размеры чекбокса, а именно вызывать AdjustSize. А вот в нем и заниматься вычислениями.. Но я смотрю в реализаю TCustomLabel.AutoSize и вижу, что борланды что то тут перемудрили..


Petr V. Abramov   (2005-07-06 19:26:00) [5]

jack128 ©   (06.07.05 19:15) [3]
AdjustSize-то вызовется при изменении чего угодно, но не Caption`а, или я не прав?


jack128   (2005-07-06 19:15:00) [6]

хелп говорит, что нужно написать наследника и перекрыть в нем метод AdjustSize. Ну и опубликовать свойство AutoSize, конечно


Petr V. Abramov   (2005-07-06 19:06:00) [7]

В обработчике CM_TEXTCHANGED
через DrawText с параметром DT_CALCRECT вычислить ширину текста и установить ширину.
P.S. Сам не пробовал, но по идее должно получиться


GLFox   (2005-07-06 19:04:00) [8]

Canvas.TextWidth()


Наверх

Титульная страница Поиск, карта сайта Написать письмо