ComboBox и ComboBoxEx — для работы с комбинированными списками в Делфи | Delphi-FAQ

ComboBox и ComboBoxEx — для работы с комбинированными списками в Делфи

Комбинированный список объединяет поле редактирования и список. Пользователь может выбирать значение из списка или вводить его непосредственно в поле. В Delphi для работы с комбинированным списком служат компоненты ComboBox и ComboВохЕх. Компонент ComboBox представляет собой обычный комбинированный список, а компонент ComboВохЕх— расширенный комбинированный список. Рассмотрим здесь компонент ComboBox.

Отметим также, что в Delphi имеется специализированный комбинированный список ColorBox, предназначенный для выбора цвета, который задается через свойство Selected типа TColor.

Список, инкапсулированный в компоненте ComboBox, может быть простым либо раскрывающимся. Раскрывающийся список в свернутом виде занимает на экране меньше места.



На скриншоте показан компонент ComboBox со свернутым (1) и развернутым (2) списками.

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

Свойство Style

Свойство Style типа TComboBoxstyle определяет внешний вид и поведение комбинированного списка. Свойство Style принимает следующие значения:

  • csDropDown (раскрывающийся список с полем редактирования)— по умолчанию: пользователь может выбирать элементы в списке (при этом выбранный элемент появляется в поле ввода) или вводить (редактировать) информацию непосредственно в поле ввода;
  • csSimple (поле редактирования с постоянно раскрытым списком); для того чтобы список был виден, необходимо увеличить высоту (свойство Height) компонента ComboBox;
  • csDropDownList (раскрывающийся список, допускающий выбор элементов в списке);
  • csOwnerDrawFixed (список с элементами фиксированной высоты, задаваемой свойством ItemHeight);
  • csOwnerDrawVariable (список с элементами, которые могут иметь разную высоту).

Если стиль списка имеет значение csOwnerDrawFixed или csOwnerDrawVariable, то за прорисовку элементов списка отвечает программист.

Свойство DropDownСount

Свойство DropDownСount типа Integer определяет количество строк, которые одновременно отображаются в раскрывающемся списке. Если значение свойства превышает число строк списка, определяемое значением подсвойства Count свойства Items, то у раскрывающегося списка автоматически появляется вертикальная полоса прокрутки, если размер списка меньше, чем задано в свойстве DropDownСount, то отображаемая область списка автоматически уменьшается. Свойство DropDownСount по умолчанию имеет значение 8.

Свойство DroppedDown

Свойство DroppedDown типа Boolean позволяет определить, раскрыт ли список. Если свойство имеет значение True, то список отображается в раскрытом виде, в противном случае список свернут. Свойство DroppedDown действует только, если свойство Style имеет значение, не равное csSimple.

Cобытие OnDropDown

При отображении раскрывающегося списка возникает событие OnDropDown типа TNotifyEvent. Программист может самостоятельно управлять раскрытием и свертыванием списка в процессе выполнения приложения, устанавливая свойство DroppedDown в соответствующее значение.

Рассмотрим пример управления раскрытием и свертыванием списка:

  1. procedure TForm1.btnOpenListClick(Sender: TObject);
  2. begin
  3. ComboBox2.DroppedDown : = True;
  4. end;
  5. procedure TForm1.btnCloseListClick(Sender: TObject);
  6. begin
  7. ComboBox2.DroppedDown := False;
  8. end;

Нажатие кнопки btnOpenList приводит к открытию, а кнопки btnCloseList — к свертыванию списка ComboBox2.

При работе с комбинированным списком генерируются следующие события типа TNotifyEvent:

  • OnDropDown (открытие списка);
  • OnCloseUp (закрытие списка);
  • OnSelect (выбор элемента);
  • OnChange (изменение текста в поле редактирования).
Метки: , ,
Если Вам интересна эта запись, Вы можете следить за ее обсуждением, подписавшись на RSS 2.0 .

Оставить комментарий или два

*