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

Вниз

Как обойти отсутствие AutoSize у TCheckBox ?   Найти похожие ветки 

 
Fay ©   (2005-07-06 18:44) [0]

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


 
GLFox ©   (2005-07-06 19:04) [1]

Canvas.TextWidth()


 
Petr V. Abramov ©   (2005-07-06 19:06) [2]

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


 
jack128 ©   (2005-07-06 19:15) [3]

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


 
Petr V. Abramov ©   (2005-07-06 19:26) [4]

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


 
jack128 ©   (2005-07-07 14:40) [5]

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


 
AbrosimovA   (2005-07-07 15:23) [6]

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


 
Fay ©   (2005-07-07 15:58) [7]

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


 
jack128 ©   (2005-07-07 16:20) [8]

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

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



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1120474529
syte_ser78
2005-07-04 14:55
2005.07.25
вопрос по Ексель


1-1120635656
shnitken
2005-07-06 11:40
2005.07.25
Unicode в ANSI


8-1111865107
seregka
2005-03-26 22:25
2005.07.25
TMemoryStream и bitmap


6-1113399588
MegaVolt
2005-04-13 17:39
2005.07.25
Ping при количестве потоков >6 работает некорректно


3-1118730631
antdrnc
2005-06-14 10:30
2005.07.25
ADO error 80030002