Списки. Компоненты ListBox и ComboBox
Для создания удобного интерфейса с пользователем используются списки выбора. Мы познакомимся с двумя видами списков: ComboBox, ListBox. Списки содержат элементы, которые могут быть выбраны при помощи клавиатуры или мыши. Компоненты TListBox и TComboBox отличаются внешним видом на экране. TListBox – это прокручиваемый список возможных выборов, на экране видны несколько элементов списка. TComboBox – это выпадающий или компактный список выборов, на экране видим только один элемент, при распахивании списка вы можете видеть несколько элементов. Отличие состоит еще и в том, что компонент TComboBox – это поле редактирования со списком, т.е. пользователь может либо ввести нужное значение вручную, либо выбрать его из списка. То, что пользователь ввел в TComboBox, будет содержаться в свойстве Text. TListBox не позволяет добавлять новые элементы в список. Ниже перечислены основные свойства списков.
Таблица
Основные свойства компонентов ListBox и ComboBox
Свойство | Описание |
Align | Выравнивание внутри формы ( для ListBox). |
BorderStyle | Стиль границы ( для ListBox). |
Color | Цвет фона. |
Columns | Число столбцов в списке ( для ListBox). |
Ctl3D | Придать трехмерный вид. |
ExtendedSelect | Только для ListBox, определяет, можно ли выбрать несколько последовательно расположенных элементов. Работает совместно со свойством MultiSelect. С помощью клавиш Shift – смежные выделения; Ctrl – несмежные выделения. |
MultiSelect | Только для ListBox; разрешены ли выделения нескольких элементов. |
Selected | Массив, позволяющий определить, какие элементы списка выбраны. |
ItemIndex | Содержит порядковый номер выделенного элемента списка, нумерация с нуля. |
Items | Объект типа TString, массив строк, содержащий элементы списка, имеет свои методы для работы со списком: |
Text | Только для TComboBox, содержит текст, введенный пользователем, позволяет задавать элемент, который первоначально будет видим в списке. |
Style | Задает стиль списка. Может принимать одно из следующих значений: DropDownList – для ComboBox, в список нельзя вводить новые значения; Standart – нормальный строковый, все строки одинаковой высоты; OwnerDrawFixed – каждый элемент имеет вы- соту, определенную свойством ItemHeight; OwnerDrawVariable – элементы списка могут иметь переменную высоту. |
Самое важное при работе со списком – это задание элементов списка и определение элемента, выбранного пользователем. Для задания элементов списка можно использовать свойство Items, доступ к которому можно получить с помощью Инспектора объектов.
Для ввода значений в это свойство необходимо щелкнуть на трех точках, при этом открывается окно редактора свойств (String List Editor), в котором и вводятся значения списка, по одному на каждой строчке:
Для определения выбранного элемента используется свойство ItemIndex, которое содержит номер выбранного элемента, нумерация с нуля.
Для демонстрации работы списка выполним следующее упражнение: в форме создадим список, содержащий названия времен года: зима, весна, лето, осень. С помощью функции ShowMessage отобразим выбор пользователя. Вид формы:
По кнопке «Ввод» работает обработчик:
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: ShowMessage ('Зима');
1: ShowMessage ('Весна');
2: ShowMessage ('Лето');
3: ShowMessage ('Осень');
end;
end;