Прокрутка в C++ Builder RadioGroup

У меня есть RadioGroup с множеством кнопок. Теперь, когда я добавляю элемент, они становятся все меньше и меньше. Как можно сделать их прокручиваемыми?


person mrc    schedule 11.12.2014    source источник


Ответы (2)


TRadioGroup изначально не поддерживает прокрутку. Однако вместо этого вы можете сделать следующее:

  1. поместите TGroupBox в свой пользовательский интерфейс.

  2. поместите TScrollBox на TGroupBox, установите для свойства Align значение alClient, а для свойства BorderStyle значение bsNone.

  3. поместите TRadioGroup на TScrollBox, очистите его свойство Caption и установите для свойства Left значение -2, а для свойства Top значение -15 (или любое другое значение, заданное для TRadioGroup.Font, плюс несколько дополнительных пикселей). Это позиционирование необходимо, потому что вы не можете отключить границы TRadioGroup или пространство, зарезервированное для его Caption.

  4. Настройте свойства TScrollBox.HorzScrollBar.Range и TScrollBox.VertScrollBar.Range так, чтобы они не прокручивались достаточно далеко, чтобы увидеть правую и нижнюю границы TRadioGroup.

Таким образом, кнопки выглядят так, как будто они являются частью TGroupBox, но с добавленными полосами прокрутки.

скриншот

person Remy Lebeau    schedule 12.12.2014

  1. RadioGroup->Items->Count
  2. TRadioGroup не имеет встроенной полосы прокрутки, но вы можете поместить группу переключателей в TScrollBox для аналогичного эффекта.

    Вы можете использовать коллекцию Buttons для ссылки на каждую кнопку, например.

    RadioGroup->Buttons[0]->Height = 5;
    RadioGroup->Buttons[1]->Top = RadioGroup->Buttons[0]->Top + 10;
    

    В любом случае TComboBox тоже может быть хорошим выбором.

person manlio    schedule 11.12.2014
comment
спасибо за ответ, но я не понимаю, что такое кнопка, я создал RadioGroup1 и добавил элементы с помощью метода add(), но когда я использовал RadioGroup1->Buttons[0]->Height = 5; я получил ошибку: высота не является членом TString - person mrc; 11.12.2014
comment
Кнопки обеспечивают прямой доступ к отдельным TRAdioButton, созданные элементом управления. Вы можете получить доступ к отдельным объектам TRadioButton, но не можете добавлять или удалять объекты TRadioButton (чтобы изменить список кнопок, измените свойство Items). - person manlio; 11.12.2014