![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обойти отсутствие 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()