У меня есть RadioGroup с множеством кнопок. Теперь, когда я добавляю элемент, они становятся все меньше и меньше. Как можно сделать их прокручиваемыми?
Прокрутка в C++ Builder RadioGroup
Ответы (2)
TRadioGroup
изначально не поддерживает прокрутку. Однако вместо этого вы можете сделать следующее:
поместите
TGroupBox
в свой пользовательский интерфейс.поместите
TScrollBox
наTGroupBox
, установите для свойстваAlign
значениеalClient
, а для свойстваBorderStyle
значениеbsNone
.поместите
TRadioGroup
наTScrollBox
, очистите его свойствоCaption
и установите для свойстваLeft
значение-2
, а для свойстваTop
значение-15
(или любое другое значение, заданное дляTRadioGroup.Font
, плюс несколько дополнительных пикселей). Это позиционирование необходимо, потому что вы не можете отключить границыTRadioGroup
или пространство, зарезервированное для егоCaption
.Настройте свойства
TScrollBox.HorzScrollBar.Range
иTScrollBox.VertScrollBar.Range
так, чтобы они не прокручивались достаточно далеко, чтобы увидеть правую и нижнюю границыTRadioGroup
.
Таким образом, кнопки выглядят так, как будто они являются частью TGroupBox
, но с добавленными полосами прокрутки.
RadioGroup->Items->Count
TRadioGroup
не имеет встроенной полосы прокрутки, но вы можете поместить группу переключателей вTScrollBox
для аналогичного эффекта.Вы можете использовать коллекцию
Buttons
для ссылки на каждую кнопку, например.RadioGroup->Buttons[0]->Height = 5; RadioGroup->Buttons[1]->Top = RadioGroup->Buttons[0]->Top + 10;
В любом случае
TComboBox
тоже может быть хорошим выбором.
TRadioButton
, но не можете добавлять или удалять объекты TRadioButton
(чтобы изменить список кнопок, измените свойство Items
).
- person manlio; 11.12.2014