Top-office11.ru

IT и мир ПК
14 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Delphi radiogroup выбранный элемент

Delphi-Help

Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox

  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
  • Печать

Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox

Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимоисключающих альтернатив, например, отдела, в котором работает сотрудник, или пола сотрудника. Впрочем, радиокнопки могут использоваться и для отображения аналогичных данных. В этом случае управление кнопками осуществляется программно.

Начнем рассмотрение радиокнопок с компонента RadioGroup — панели группы радиокнопок. Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки. Надпись в левом верхнем углу панели определяется свойством Caption. А надписи кнопок и их количество определяются свойством Items, имеющим тип TStrings. Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора. В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы запишете — столько и будет кнопок. Например, для компонента RadioGroup в верхней правой части формы свойство Items имеет вид:

Кнопки, появившиеся в панели после задания значений Items, можно разместить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns = 1, т.е. кнопки размещаются друг под другом.

Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы, как всегда в Delphi, начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения.

Компонент RadioGroup очень удобен, но не свободен от некоторых недостатков. Его хорошо использовать, если надписи кнопок имеют примерно одинаковую длину и если число кнопок в каждом столбце (при размещении их в нескольких столбцах) одинаково. Группа радиокнопок в нижнем левом углу формы имеет нормальный вид. А группа аналогичных радиокнопок в верхней правой части формы выглядит плохо: она занимает слишком много места, которое пропадает в пустую. Связано это с тем, что длина надписей у кнопок первого столбца превышает длину надписей у остальных кнопок. A RadioGroup при размещении кнопок ориентируется на надпись максимальной длины. Еще хуже выглядела бы эта группа, если бы число кнопок было, например, равно 5.

В подобных случаях желательно нерегулярное расположение кнопок. Такую возможность дают компоненты RadioButton, сгруппированные панелью GroupBox. Панель GroupBox выглядит на форме так же, как RadioGroup, и надпись в ее верхнем левом углу также определяется свойством Caption. Эта панель сама по себе пустая. Ее назначение — служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton. Отдельная радиокнопка RadioButton особого смысла не имеет, хотя и может служить индикатором, включаемым и выключаемым пользователем. Но в качестве индикаторов обычно используются другие компоненты — CheckBox. А радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа и объединяется единым контейнером, обычно панелью GroupBox.

Рассмотрим свойства радиокнопки RadioButton. Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify — слева, taRightJustify — справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования. Если вы поэкспериментируете, то заметите, что и во время проектирования можно установить в true значение Checked только у одной кнопки из группы.

Размещение кнопок RadioButton в панели GroupBox, дает большую свободу по сравнению с компонентом RadioGroup и позволяет разместить кнопки не регулярно.

Радиокнопки RadioButton могут размещаться не только в панели GroupBox, но и в любой панели другого типа, а также непосредственно на форме. Группа взаимосвязанных кнопок в этих случаях определяется тем оконным компонентом, который содержит кнопки. В частности, для радиокнопок, размещенных непосредственно на форме, контейнером является сама форма. Таким образом, все кнопки, размещенных непосредственно на форме, работают как единая группа, т.е. только в одной из этих кнопок можно установить значение Checked в true.

Компонент TRadioGroup

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Если в программе требуется использовать несколько групп переключателей (например, одну для указания предприятия, а другую для выбора), можно применить один из двух подходов. Первый состоит в выделении для каждой группы специального контейнерного объекта (панели), чтобы система Delphi могла понять, как объединяются переключатели. Второй подход состоит в использовании компонента TRadioGroup (Группа переключателей), который объединяет свойства и методы, обеспечивающие поддержку работы группы переключателей.

После размещения в форме компонента TRadioGroup входящие в него переключатели задаются перечислением их названий. Эти названия вводятся в свойство Items, имеющее тип TString. Так как требуется ввести не одну строку, а несколько, для их ввода предусмотрен специальный редактор (рис. 7.8), который вызывается щелчком на кнопке с многоточием, расположенной в поле для свойства Items. Текстовая область окна редактора предназначена для ввода названий переключателей, по одному в каждой строке. Не забывайте о возможности управления программой с помощью клавиатуры, поэтому перед некоторыми буквами в названиях можно указать символ чтобы сделать эти буквы подчеркнутыми. Затем щелкните на кнопке ОК, и внешний вид объекта RadioGroupl примет вид, подобный изображенному на рис. 7.9.

Читать еще:  Что такое си кам модуль

Рис. 7.8. Редактор строк

Рис. 7.Э. Компонент TRadioGroup

Поскольку компонент TRadioGroup представляет единое пелое со своими переключателями, то и установки его свойств отличаются от компонента TRadioButton. Так, свойство Caption определяет не надпись каждого переключателя, а заголовок группы (исходно она называется RadioGroupl). Надписи теперь задаются в свойстве Items (Список строк). Свойство Columns задает число столбцов (первоначально один), создаваемых переключателями. Свойство Itemlndex содержит номер выделенного переключателя (число -1 показывает, что ни один переключатель не выбран). При выполнении программы значение этого свойства изменяется автоматически, когда пользователь выбирает один из переключателей группы. Разрешается менять его и программно: при занесении нового значения в свойство Itemlndex изменится и текущий выбранный переключатель формы.

Динамически реагировать на выбор нового переключателя в группе можно с помощью обработчика события Onclick. Например, чтобы отображать с помощью надписи Labell название текущего переключателя, надо обратиться к свойству Items и выделить тот элемент, номер которого записан в свойстве Itemlndex. Предварительно следует проверить, есть ли выделенный переключатель (значение свойства Itemlndex не должно быть равно -1), или выбрать один из переключателей на этапе проектирования (например, присвоив свойству Itemlndex значение 0).

Изучаем компоненты Panel, GroupBox, RadioGroup, CheckBox

Компонент Panel (Панель)

Компонент Panel находится на вкладке Standard и применяется для улучшения внешнего вида формы, а также для группировки нескольких компонентов. Этот компонент по своим свойствам немного напоминает форму. Если установить несколько других компонентов на Panel , то при смещении панели будут смещаться и компоненты, установленные на ней.

Изучим этот компонент на практике. Создайте новый проект, и установите на форму один компонент Panel . По умолчанию, свойству Caption панели присваивается то же имя, что и свойству Name , то есть прямо по центру панели выходит текст «Panel1». Нас это не устраивает. Очистим свойство Caption панели – просто удалите этот текст, ничего туда не вписывая.

Разберем другие полезные свойства этого компонента. Свойства семейства Bevel отвечают за внешний вид компонента:

BevelIner и BevelOuter имеют одинаковые значения, и отвечают за то, какой панель будет выглядеть – выпуклой или вогнутой. Попробуйте изменять значения этих свойств, и Вы все поймете.

BevelWidth указывает ширину оборки панели. Попробуйте изменить значение на 5. Панель выглядит экзотично, но не профессионально, лучше у этого свойства оставлять значение по умолчанию.

Еще одно очень важное свойство – Align (Выравнивание). Это свойство часто используют не только у панелей, но и у многих других компонентов. Align имеет несколько значений:

  • AlBottom – указывает, что панель будет занимать весь низ формы. Когда размеры формы меняются, меняется и размер панели, но она по-прежнему занимает весь низ.
  • AlClient – указывает, что панель занимает все пространство формы. Если вы установили панель, и растянули ее по всему верху, а затем установили еще одну панель и указали значение alClient , то вторая панель займет все оставшееся место.
  • AlCustom – указывает пользовательские настройки. При изменении размеров формы такая панель останется, как при разработке дизайна.
  • AlLeft – занимает всю левую часть формы.
  • AlNone – выравнивания нет. Работает практически как AlCustom.
  • AlRight – занимает всю правую часть формы.
  • AlTop – панель вытягивается по всей верхней части формы.

Ранее мы создавали простой редактор текстов. Улучшим этот пример. Укажите у свойства Height ( высота ) панели значение 40. Свойство Top установите в 0. Тем самым мы прижали панель к самому верху формы. Свойству Align присваиваем значение alTop , растягивая панель по всему верхнему краю. Теперь, если пользователь станет менять размеры формы, сжимая окно или наоборот, растягивая, панель все равно будет занимать весь верх. Устанавливая на эту панель кнопки, мы получим типичную панель инструментов . Так и сделаем: установите на панель три кнопки, одну рядом с другой. На кнопках должен быть текст: «Сохранить», «Загрузить» и «Очистить».

На оставшееся внизу место помещаем компонент Memo , дважды щелкаем по свойству Lines , чтобы вызвать редактор текста, и удаляем из Memo весь текст. Свойству Align компонента Memo присвоим значение alClient , чтобы растянуть Memo по всему оставшемуся месту. Вот и все, мы имеем панель инструментов и рабочую область редактора текстов. Сохраните проект, скомпилируйте его и посмотрите, как меняются размеры панели и Memo при изменении размера окна. Запрограммировать кнопки вы сможете самостоятельно, используя пример из второй лекции.

Компоненты GroupBox и CheckBox

GroupBox во многом похож на обычную панель. Он предназначен для группировки схожих по смыслу компонентов. Текст из свойства Caption выходит не посреди панели, а вверху, создавая таким образом заглавие этой панели. При перемещении GroupBox , будут перемещаться и все компоненты, расположенные на нем.

Создайте новое приложение . Мы сделаем полезную утилиту, меняющую вид формы в зависимости от настроек. На форму установите компонент GroupBox , присвоив его свойствам Left и Top значение 6, чтобы прижать его к верхнему левому краю окна. В свойстве Caption этого компонента напишите текст » BorderIcons «. Поскольку обрамление компонента вплотную подходит к тексту – заголовку, с дизайнерской точки зрения будет нелишним добавить пару пробелов перед текстом, и столько же после него.

Мы уже знаем, что BorderIcons – это свойство формы, программирующее ее внешний вид. Это свойство имеет 4 значения, каждое из которых можно включить, либо выключить. Таким образом, нам нужно 4 классических «флажка», в которые можно будет поставить «галочку» или убрать ее. Роль таких флажков выполняет компонент CheckBox . Установите 4 CheckBox прямо на панель GroupBox , один над другим:

Читать еще:  Zadachi po html

Измените свойство Caption этих компонентов, написав там, соответственно, «biSystemMenu», «biMinimize», «biMaximize» и «biHelp». Свойство Checked компонента CheckBox показывает включен ли компонент , другими словами, установлена ли в нем «галочка». У формы по умолчанию первые три значения включены, также сделаем и здесь – у первых трех компонентов CheckBox установите свойство Checked в True .

Компонент RadioGroup

Этот компонент также имеет вид панели и предназначен для группировки так называемых радиокнопок. Включенной может быть лишь одна такая радиокнопка. На рисунке 7.1 в правой части формы вы видите такую панель с установленными радиокнопками. Добавьте компонент RadioGroup на форму, в свойстве Caption установите текст «BorderStyle», не забывая про пробелы до и после текста. Устанавливать на этой панели радиокнопки значительно легче, чем кнопки CheckBox . Выделите эту панель и дважды щелкните по ее свойству Items . Откроется редактор текста, такой же, как у Memo . В этом редакторе нужно написать название каждой кнопки на отдельной строке. Введите следующие названия пунктов:

Как только вы нажмете «ОК» и закроете редактор, на панели RadioGroup появятся описанные кнопки. Ни одна из них не имеет включенного вида. Мы уже знаем, что можно включить только одну такую кнопку из списка. Компонент RadioGroup имеет свойство ItemIndex , которое указывает, какая кнопка в данный момент включена. По умолчанию, ItemIndex равен -1. Поскольку нумерация кнопок начинается с нуля, значение -1 означает, что ни одна кнопка не включена. Установите значение 0, включив тем самым первую кнопку (на форме одноименное свойство включено по умолчанию).

Ниже установите кнопку, написав на ней слово «Применить». Все, с дизайном окончено, переходим к программированию кнопки. Если вы еще не сохранили проект в новую папку, сделайте это сейчас. Свойству Name формы, как обычно, дайте имя fMain, модулю – просто Main, всему проекту в целом – FormViewer .

Вернемся к кнопке. Щелкните дважды по ней, создав процедуру обработки нажатия кнопки.

Delphi radiogroup выбранный элемент

Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox

  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
  • Печать

Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox

Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимоисключающих альтернатив, например, отдела, в котором работает сотрудник, или пола сотрудника. Впрочем, радиокнопки могут использоваться и для отображения аналогичных данных. В этом случае управление кнопками осуществляется программно.

Начнем рассмотрение радиокнопок с компонента RadioGroup — панели группы радиокнопок. Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки. Надпись в левом верхнем углу панели определяется свойством Caption. А надписи кнопок и их количество определяются свойством Items, имеющим тип TStrings. Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора. В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы запишете — столько и будет кнопок. Например, для компонента RadioGroup в верхней правой части формы свойство Items имеет вид:

Кнопки, появившиеся в панели после задания значений Items, можно разместить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns = 1, т.е. кнопки размещаются друг под другом.

Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы, как всегда в Delphi, начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения.

Компонент RadioGroup очень удобен, но не свободен от некоторых недостатков. Его хорошо использовать, если надписи кнопок имеют примерно одинаковую длину и если число кнопок в каждом столбце (при размещении их в нескольких столбцах) одинаково. Группа радиокнопок в нижнем левом углу формы имеет нормальный вид. А группа аналогичных радиокнопок в верхней правой части формы выглядит плохо: она занимает слишком много места, которое пропадает в пустую. Связано это с тем, что длина надписей у кнопок первого столбца превышает длину надписей у остальных кнопок. A RadioGroup при размещении кнопок ориентируется на надпись максимальной длины. Еще хуже выглядела бы эта группа, если бы число кнопок было, например, равно 5.

В подобных случаях желательно нерегулярное расположение кнопок. Такую возможность дают компоненты RadioButton, сгруппированные панелью GroupBox. Панель GroupBox выглядит на форме так же, как RadioGroup, и надпись в ее верхнем левом углу также определяется свойством Caption. Эта панель сама по себе пустая. Ее назначение — служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton. Отдельная радиокнопка RadioButton особого смысла не имеет, хотя и может служить индикатором, включаемым и выключаемым пользователем. Но в качестве индикаторов обычно используются другие компоненты — CheckBox. А радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа и объединяется единым контейнером, обычно панелью GroupBox.

Читать еще:  Паскаль div и mod примеры

Рассмотрим свойства радиокнопки RadioButton. Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify — слева, taRightJustify — справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования. Если вы поэкспериментируете, то заметите, что и во время проектирования можно установить в true значение Checked только у одной кнопки из группы.

Размещение кнопок RadioButton в панели GroupBox, дает большую свободу по сравнению с компонентом RadioGroup и позволяет разместить кнопки не регулярно.

Радиокнопки RadioButton могут размещаться не только в панели GroupBox, но и в любой панели другого типа, а также непосредственно на форме. Группа взаимосвязанных кнопок в этих случаях определяется тем оконным компонентом, который содержит кнопки. В частности, для радиокнопок, размещенных непосредственно на форме, контейнером является сама форма. Таким образом, все кнопки, размещенных непосредственно на форме, работают как единая группа, т.е. только в одной из этих кнопок можно установить значение Checked в true.

На этом шаге мы рассмотрим компонент TRadioGroup

Если в программе требуется использовать несколько групп переключателей (например, одну для выбора типа устройства, а другую для выбора его состояния), то можно применить один из двух подходов. Первый состоит в выделении для каждой группы специального объекта (панели), чтобы система Delphi могла понять, как объединяются переключатели. Второй подход состоит в использовании компонента TRadioGroup ( Группа переключателей ), который объединяет свойства и методы, обеспечивающие поддержку работы группы переключателей. После размещения в форме компонента TRadioGroup входящие в него переключатели задаются после перечисления их названий. Эти названия вводятся в свойство Items , имеющее тип TString .

Рассмотрим свойства компонента TRadioGroup .

Так как компонент TRadioGroup представляет единое целое со своими переключателями, использование его в программе отличается от использования компонента TRadioButton .

После размещения компонента на форме он пуст. Чтобы создать в нем хотя бы один переключатель, следует раскрыть редактор списка Items и ввести хотя бы одну строку: строки Items используются как поясняющие надписи справа от переключателей, а их количество определяет количество переключателей в группе. Заметим также, что после создания компонента его свойство ItemIndex по умолчанию имеет значение -1, это значит, что ни один переключатель в группе не установлен. Чтобы в момент появления компонента на экране какой-то переключатель был уже установлен, необходимо на этапе конструирования с помощью окна инспектора объектов или программно установить в свойство ItemIndex номер соответствующего переключателя (нумерация начинается с 0). Это же свойство позволяет программе проанализировать выбор пользователя.

Для получения состояния переключателя в группе можно использовать обработчик событий OnClick . Например, чтобы отображать с помощью надписи Label1 название текущего переключателя, обратитесь к свойству Items ( Список строк ) и выделите тот элемент, номер которого записан в свойстве ItemIndex . Предварительно следует проверить, имеется ли вообще выделенный переключатель (значение свойства ItemIndex не равно -1).

Поместите на форму компоненты: RadioGroup1 , RadioGroup2 , Label1 , Label2 . Создайте переключатели для компонентов RadioGroup1 , RadioGroup2 , как на рис. 1. Для компонента RadioGroup1 создайте обработчик OnClick :

Для компонента RadioGroup2 создайте обработчик OnClick :

На следующем шаге мы рассмотрим компонент TPanel

Школа программирования Delphi

Портал DelphiSchool является бесплатным проектом, обеспечивающим пользователям быстрый и легкий доступ к урокам программирования на Delphi. Сайт позволяет научиться программировать на Делфи любому, кто хочеть писать свои программы, игры, Android приложения, программы для MAC OC или IOS. Кроме уроков Delphi и статей Delphi, на сайте доступны также и видеоуроки. Практически к каждому уроку, пользователю доступен исходник, изучив который, он сможет наглядно посмотреть как работает та или иная программа, написанная на Делфи. Кроме того мы постараемся прилагать к каждому материалу (статье, уроку, видеоуроку) файлы Delphi, которые будут помогать изучить предоставленный материал.

Каждый кто решил написать свою программу, создать свое приложение, научиться программировать и т.д., найдет на DelphiSchool статьи Delphi, уроки Delphi, видеоуроки Delphi, исходники Delphi, файлы Delphi, изучит компоненты Delphi, посмотрит Delphi примеры и многое другое абсолютно бесплатно. Все о Delphi программировании теперь собрано на одном сайте.
DelphiSchool

Преимуществом использования компонента RadioGroup является, то, что для того чтобы узнать какой RadioButton в данный момент выделен, не нужно проверять свойство Checked каждого из этих компонентов. Достаточно просто узнать номер выделенного, используя свойство ItemIndex компонента TRadioGroup. Но не смотря на такое преимущество, этот компонент очень редко используется программистами, так как есть и недостаток – RadioButton, находящиеся внутри группы невозможно точно позиционировать.

К уроку (статье) Delphi и RadioGroup. Пример работы с группой компонентов RadioButton в Делфи прилагается исходник, посмотрев который, вы можете ознакомиться с полным исходным кодом программы и посмотреть как работает созданная программа. Исходный код сопровождается комментариями, благодаря чему вы сможете легко в нем разобраться. Но я настоятельно рекомендую делать все самостоятельно. Так вы лучше и быстрее усвоите то, о чем говорилось в этом уроке

Для того чтобы получить возможность скачать исходник Delphi к этому уроку, необходимо посетить сайт рекламодателя. После этого, появится ссылка на исходник Delphi к уроку Delphi и RadioGroup. Пример работы с группой компонентов RadioButton в Делфи
Нажмите на эту ссылку Ссылка

Ссылка на основную публикацию
Adblock
detector