Справочник по компонентам Delphi. Часть 2 - Компонент TComboBox

ОГЛАВЛЕНИЕ

Компонент TComboBox

TObject -> TPersistent -> TComponent -> TControl -> TWinControl ->  -> TCustomCornboBox -> TComboBox

Модуль STDCTRLS

Страница Палитры компонентов Standard

Этот стандартный элемент управления Windows — комбинированный список -— имеет много общего с TListBox. Он состоит из собственно списка и помещен­ного рядом поля ввода редактирующего элемента. Таким образом, пользова­тель может выбрать одно из готовых значений какой-то величины или ввести свое. Стиль компонента в части правил взаимного сочетания списка и редак­тора определяется свойством:

property Style: TComboBoxStyle;
TComboBoxStyle = (csDropDown, csSimple, csDropDownList, csOwnerDrawPixed, csOv'nerDrawVariable);

Его значения имеют следующий смысл:

  • csSimple — весь список виден все время. Текущий выбор отображается в редакторе, его можно изменить;
  • csDropDown — список открывается (выпадает) и скрывается при нажатии кнопки, расположенной справа от текста. Такой список будем называть вьша дающим;
  • csDropDownList —список вьшадающий, но редактирующий элемент заме­нен статическим текстом и вводить свои данные пользователь не может;
  • csOwnerDrawFixed — определяемьш пользователем стиль списка с по­стоянной высотой элемента;
  • csOwnerDrawVariable — определяемьш пользователем стиль списка с пере­менной высотой элемента.

Принципы пользовательской отрисовки списка для csOwnerDrawFixed и csOwnerDrawVariable, а также связанные с этим методы и события остались такими же, как в TListBox. По умолчанию устанавливается сталь csDropDown.

Организация списка также сходна с предыдущей. Приведенные свойства и методы имеют то же назначение:

(Pb) property Items: TStrings;
property Itemlndex: Integer;procedure Clear;
(Pb) property Sorted: Boolean;
(RcS)
property Canvas: TCanvas;

Текст, содержащийся в редактирующем элементе списка, доступен через свой­ство:

property Text: TCaption;

Его максимальная длина ограничена числом символов, равным значению свой­ства:

(Рb) property MaxLength: Integer;

Если MaxLength равно 0, то ограничений на длину строки нет (до 255 сим­волов). При изменении текста (а также при смене выбранного элемента) возникает событие OnChange. Часть текста может быть выделена. Три свойства содержат выделенный текст, его положение и длину:

property SelText: string;
property SelStart: Intege;
property SelLength: Integer;
Метод
procedure SelectAll; 

выделяет весь текст. Значение свойства

property DroppedDown: Boolean;

соответствует состоянию списка: True соответствует открытому ("выпавшему") списку. С его помощью можно показывать или скрывать список из программы. При изменении состояния списка возникает событие:

(Рb) property OnDropDown: TNotifyEvent ;

Максимальное число элементов, которые показываются при выпадении списка:

(Pb) property DropDownCount: integer;

По умолчанию оно равно 8. В первой версии VCL это свойство описано, но не реализовано (не играет роли).