Обзор компонентов библиотеки C++Builder_______________________155

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

Основное свойство обоих компонентов, содержащее список строк, — Items,
имеющее рассмотренный ранее тип TStrings. Заполнить его во время проектирова-
ния можно, нажав кнопку с многоточием около этого свойства в окне Инспектора
Объектов. Во время выполнения работать с этим свойством можно, пользуясь свой-
ствами и методами класса TStrings (см. раздел 3.2.4 и соответствующий раздел
главы 15) — Clear, Add и другими.

В компоненте ListBox имеется свойство MultiSelect, разрешающее пользова-
телю множественный выбор в списке. Если MultiSelect = false (значение по умол-
чанию), то пользователь может выбрать только один элемент списка. В этом случае
можно узнать индекс выбранной строки из свойства Itemlndex, доступного только
во время выполнения. Если ни одна строка не выбрана, то Itemlndex = -1. Началь-
ное значение Itemlndex невозможно задать во время проектирования. По умолча-
нию Itemlndex = -1. Если вы хотите задать этому свойству какое-то другое значе-
ние, т.е. установить выбор по умолчанию, который будет показан в момент начала
работы приложения, то сделать это можно, например, в обработчике события ОпС-
reate формы, введя в него оператор вида

ListBoxl->ItemIndex = 0;

Если допускается множественный выбор (MultiSelect = true), то значение Ite-
mlndex соответствует тому элементу списка, который находится в фокусе. При
множественном выборе проверить, выбран ли данный элемент, можно проверив
свойство bool Selected[int Index].

На способ множественного выбора при MultiSelect == true влияет еще свойство
ExtendedSelect. Если ExtendedS elect °= true, то пользователь может выделить ин-
тервал элементов, выделив один из них, затем нажав клавишу Shift и переведя
курсор к другому элементу. Выделить не прилегающие друг к другу элементы по-
льзователь может, если будет удерживать во время выбора нажатой клавишу Ctrl.
Если же ExtendedSelect = false, то клавиши Shift и Ctrl при выборе не работают.

Свойство Columns определяет число столбцов, в которых будет отображаться
список, если он не помещается целиком в окне компонента ListBox.

Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted =
true новые строки в список добавляются не в конец, а по алфавиту.

Свойство Style, установленное в IbStandard (значение по умолчанию) соответ-
ствует списку строк. Другие значения Style позволяют отображать в списке не то-
лько текст, но и изображения.

Имеется еще один компонент, очень похожий на ListBox — это список с инди-
каторами CheckListBox. Выглядит он так же, как ListBox, но около каждой стро-
ки имеется индикатор, который пользователь может переключать. Индикаторы
можно переключать и программно, если список используется для вывода данных и
необходимо в нем отметить какую-то характеристику каждого объекта, например,
наличие товара данного наименования на складе.

Все свойства, характеризующие компонент CheckListBox как список, анало-
гичны ListBox, за исключением свойств, определяющих множественный выбор.
Эти свойства компоненту CheckListBox не нужны, поскольку в нем множествен-
ный выбор можно осуществлять установкой индикаторов. Свойства компонента
CheckListBox, связанные с индикаторами, будут рассмотрены в разделе 3.3.5.

Остановимся теперь на компоненте ComboBox. Стиль изображения этого ком-
понента определяется свойством Style, которое может принимать следующие
основные значения: