Этот компонент впервые введен в версии 6. По сравнению с TCоmboBох (см. п. 18.1.11) он способен рисовать слева от элемента списка небольшое изображение и выводить элемент с заданным отступом от левого края списка (рис. 18.34). Кроме того, с каждым элементом можно связать указатель на произвольные данные, размещенные в динамической памяти.
Рис. 18.34. Пример использования компонента ТСотbоВохЕх
Специфичные свойства компонента:property Images: TCustomImageList; | Определяет объект-хранилище изображении | property ItemsEx: TComboExItems; | Определяет строки списка выбора | property MaxLength: Integer; | Определяет максимальное количество символов, которые пользователь может ввести в окне редактора | type TComboBoxExStyle = (csExDropDown, csExSimple, csEx-DropDownList) ; property Style: TComboBoxExStyle; | Определяет стиль компонента: csExDrop-Down с кнопкой раскрытия списка и возможностью ручного ввода текста; csExSim-ple - без кнопки (список всегда раскрыт), высота списка определяется свойством Height; csExDropDownList -с кнопкой раскрытия списка, но пользователь не может ввести текст выбора вручную |
Строки ItemsEx списка выбора определяет класс TComboExItems, имеющий такие свойства:
property Comboltems[const Index: Integer]: TComboExItem; property Items[const Index: Integer] : TListControlItem; default; type TLi'stItemsSortType = (stNone, stData, stText, stBoth); property SortType: TSortType;
Класс TListControlItem имеет три специфичных свойства: caption (String), Data (Pointer) И Imagelndex (integer), с помощью которых описываются текст элемента, а также связанные с ним данные и индекс изображения. Для установки значений этих свойств используются методы SetCaption, SetData И Setlmagelndex класса TListControlItem.
Класс TComboExitem, с помощью которого описываются строки списка в целом, имеет такие свойства:
property Caption: Strings | Текст элемента выбора | property Data: Pointed; | Указатель на связанные с элементом данные | property Imagelndex: Timagelndex; | Индекс изображения для невыбранного элемента | property Indent: Integer; | Отступ элемента от левого края списка | property Overlaylmagelndex: Timagelndex; | Индекс изображения-маски | property SelectedlmageIndex: Timagelndex; | Индекс изображения для выбранного элемента |
Нетрудно заметить, что свойства Caption, Data и Imagelndex дублируют одоименные свойства класса TListControlltem. Свойство Overlaylmagelndex ссылается на черно-белый растр, который накладывается на изображения Imagelndex И Selectedlmagelndex. Этопозволяет реализовать разного рода анимационные эффекты при выводе изображений.
8 8 8
| |