![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Есть RadioGroup, элементы в неё добавляются динамически. При добавлении элементы располагаются по середине РадиоГруппы. Каким образом сделать так, чтобы при добавлении элементы располагались вверху РадиоГруппы. Для наглядности цепляю картники, 1я - как есть, 2я - как хочется (отредактирована в пейнте). Как есть: ![]() Как хочется: ![]() |
|
#2
|
|||
|
|||
|
можно checklistbox сделать
|
|
#3
|
||||
|
||||
|
создавать нужное количество TRadioButton на TGroupBox вместо TRadioGroup.
|
|
#4
|
|||
|
|||
|
Цитата:
Или есть какие-то более простые методы? |
|
#5
|
||||
|
||||
|
ну если так хочется... а по умолчанию будет автоматом переключать.
|
|
#6
|
||||
|
||||
|
Радиогруппа (TRaduoGroup) по сути и есть Групбокс (TGroupBox). Можете даже исходник глянуть. Если не хочется сочинять решение с компонентами самому, то:
1. У Радиогруппы есть св-во Controls[Index:Integer] в котором хранятся все пункты (а-ля TRadioButton). 2. При добавлении новой - высота каждой РадиоКнопки равна (Высота клиентской области Радиогруппы)/(Количество радиокнопок) 3. С этими кнопками можно работать через Controls - выставить высоту компонента и указать TOP. Например (в радиогруппе 2 элемента): Код:
RadioGroup1.Controls[0].Height := Canvas.TextHeight('0');
RadioGroup1.Controls[1].Height := Canvas.TextHeight('0');
RadioGroup1.Controls[1].Top := RadioGroup1.Controls[0].Top + RadioGroup1.Controls[0].Height; |
|
#7
|
|||
|
|||
|
Цитата:
Спасибо большое, предложенное Вами решение - то, что мне было нужно! |