ListBox – окно списка. Этот компонент расположен на вкладке Standard библиотеки компонентов, и предназначен для отображения стандартного окна списка Windows, позволяющего пользователю выбирать из него пункты.
ComboBox – редактируемый список. Он расположен на вкладке Standard и объединяет функции компонентов ListBoxи Edit. При использовании этого компонента пользователь может либо ввести текст, либо выбрать его из списка.
CheckListBox – расположен на вкладке Additional и представляет собой комбинацию компонентов ListBox и индикаторов CheckBox.
Компоненты ListBox и ComboBoxизображают списки строк. Использование этих компонентов позволяет обеспечить безошибочный ввод информации пользователем в тех случаях, когда он должен выбрать ответ из конечного множества альтернатив, например, из списка товаров магазина. Компоненты списков отличаются друг от друга, прежде всего тем, что ListBox только отображает данные, а ComboBoxпозволяет редактировать данные. Кроме того, различается форма отображения списков. ListBoxотображает список в раскрытом виде и автоматически добавляет в список полосы прокрутки, если все строки не помещаются в окне компонента. Компонент ComboBox позволяет отображать список, как в развернутом виде, так и в виде выпадающего списка. Последний вариант обычно удобнее, так как при этом экономится площадь окна приложения.
Основные свойства списков :
Items– строковый массив элементов списка для выбора.
ItemIndex– определяет номер выделенной строки пользователем. Если строка не выделена, его значение =-1. Свойство доступно, только во время выполнения программы.
Color – изменение цвета фона.
Font – изменение параметров шрифта.
Count– определяет текущее число строк списка.
Selected– выделяет указанную строку списка. Имеет логический тип и может принимать два значения True или False. Например, для выделения в списке с именем ListBox1 третьей строки необходимо записать оператор : ListBox1->Selected [2] = True ;Это свойство доступно только во время выполнения программы.
MultiSelect– разрешает пользователю множественный выбор элементов из списка, может принимать два значения true и false.
Основные методы списков :
Add() – добавить элемент в список. Например, при добавлении элемента в список с именем ListBox1 следует записать оператор вида :
ListBox1->Items-> Add(«Новый элемент списка»);
Insert() – вставка элемента в указанную позицию списка. Например, оператор :
ListBox1-> Items-> Insert(О, «Вставить данный текст в первую строку»)
вставит строку в начало списка.
Delete() – удаление строки с указанным номером. Оператор ListBox1-> Items-> Delete(1);удаляет второй элемент списка.
Clear() – очистка всего списка .Оператор ListBox1-> Clear();полностью очищаетсписок.
Move() - изменение текущей позиции строки на заданную. Например, для перемещения элемента списка с седьмой позиции на первую необходимо записать оператор:
Listbox 1->Items -> Move (6, 0 );
текущая заданная
позиция позиция
Разновидностью списка ListBoxявляется список с индикаторами CheckListBox. Все свойства, характеризующие компонент CheckListBox как список, аналогичны ListBox, за исключением свойств, определяющих множественный выбор. Эти свойства компоненту CheckListBox не нужны, поскольку в нем множественный выбор можно осуществлять установкой индикаторов с флажками. Индикатор с флажком стоит у каждого элемента списка, и его состояние пользователь может изменять. Проверять состояние индикатора можно по значению свойства Checked. Если Checked = true, то индикатор выбран, если Checked = false - индикатор не выбран.
Например, оператор CheckListBox1-> Checked [1]= true;, устанавливает индикатор второй строки списка CheckListBox1 в состояние выбранного, а операторы
for ( int i = 0; i< CheckListBox1 -> Items -> Count; i++)
if (CheckListBox1 -> Checked [i])…
проверяют состояние всех индикаторов списка, и для выбранных пользователем строк осуществляет необходимые действия.
В компоненте CheckListBox имеется также событие OnСlickСheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.
Отличительной особенностью компонента ComboBox является наличие свойства Style,которое определяет стиль изображения этого компонента и может принимать следующие основные значения:
csDropDown – выпадающий список со строками одинаковой высоты и с окном редактирования, позволяющем пользователю вводить или редактировать текст.
csSimple – развернутый список со строками одинаковой высоты и с окном редактирования, позволяющем пользователю вводить или редактировать текст.
csDropDownList – выпадающий список со строками одинаковой высоты, не содержащий окон редактирования.
csOwnerDrowVariable – выпадающий список типа csDropDown с графической прорисовкой элементов, которые могут иметь различную высоту.
Выбор пользователя или введенный им текст можно определить по значению свойства Text. Если же надо определить индекс выбранного пользователем элемента списка, то можно воспользоваться свойством ItemIndex. При запуске комбинированного поля значению свойства ItemIndex необходимо задавать начальные значения 0, 1 … .
Свойство MaxLength определяет максимальное число символов, которые пользователь может ввести в окно редактирования. При значении этого свойства = 0 число вводимых символов неограниченно.
Рассмотрим несколько приемов работы с комбинированными списками :
1.Добавление элементов в список с помощью метода Add(добавить элемент), который имеет следующий синтаксис:
Cbox 1 -> Items -> Add (“Строковое выражение”); ,
где Cbox1 – имя комбинированного списка;
“Строковое выражение”- строка, которая добавляется в список Пример: CBox1 -> Items -> Add (“Вино”);
2.Удаление элементов из списка осуществляется с помощью метода Delete.
CBox1 -> Items -> Delete (index);
Пример: Удалить 2 элемент списка
CBox1 -> Items -> Delete [1];
Удаление сразу всех элементов списка осуществляется с помощью метода Clear.
Например, оператор CBox1 -> Clear ( );полностью очищает весь список.
3.Доступ к содержимому списка может осуществляться следующими операторами:
CBox1 -> Items -> Strings [1]; // доступ к содержимому второй строки.
CBox1 -> Text; // доступ к содержимому выделенной строки.
Примеры:
Memo1 -> Text = CBox 1 -> Items -> Strings [1];
Memo1 -> Text = CBox 1 -> Text;
Первый оператор записывает в текстовое поле Memo1 содержимое второй строки CBox1, а второй оператор записывает в поле Memo1 содержимое выделенной строки.
4. Определение положения элемента осуществляется с помощью свойства ItemIndex. Оно устанавливает или возвращает индекс текущего выбранного элемента списка и доступно лишь во время выполнения. Значение этого свойства = 0, если выбран первый элемент, 1 – если второй и т.д. Например, определить номер выделенного элемента можно с помощью оператора: int i = CBox -> IntemIndex;
5.Возвращение числа элементов списка n осуществляется с помощью свойства Countпри использовании оператора:
int n = CBox1 -> Items -> Count;
Примеры использования основных свойств, методов и событий списков представлены на рисунках5.9 –5.14.На рисунке 5.9 показан внешний вид интерфейса приложения, позволяющего демонстрировать свойства и методы списка ListBox,апрограммный код этого приложения приведен на рисунке 5.10. Рис. 5.9 Интерфейс приложения, демонстрирующего свойства списка ListBox
В приложение включены два спискаи многострочное окно редактирования . Первое из них(ListBox1) используется для ввода текста, второе (ListBox2) -для иллюстрации свойств и методов. Окно редактирования Memo1 предназначено для демонстрации операторов кода при выполнении программы . На ряду с этим на форме размещены четыре кнопки типа Button и семь радио кнопок типа RadioButton. Назначение этих компонентов и их свойства, установленные во время проектирования, поясняются в таблице 5.5.
Таблица 5.5
Компонент
Свойство
Значение
Форма
Caption
Демонстрация свойств списка ListBox
Кнопки
Caption
Ввод текста(Button1)
Caption
Ввод в цикле(Button2)
Caption
Очистка(Button3)
Caption
Выделение 2-ой строки(Button4)
Радио кнопки
Caption
Изменение цвета фона(RadioButton1)
Caption
Изменение шрифта(RadioButton2)
Caption
Вставка в 1-ю строку(RadioButton3)
Caption
Перенос 4-ой строки (RadioButton4)
Сaption
Перен.выд.стр.во 2-й спис.(RadioButton5)
Caption
Число строк в 1-ом списке (RadioButton6)
Caption
Изм.тек.позиции стр.на зад.( RadioButton7)
Метки
Caption
Список1
Caption
Список2
Списки
Name
Edit1
Name
Edit2
Окно редактиров.
Name
Memo1
Другие свойства компонентов принимаются по умолчанию.
// Программный код приложения, демонстрирующего свойства списка ListBox
Рис.5.10 Программный код приложения, демонстрирующего свойства списка ListBox
В программном коде( Рис.5.10) при щелчке по кнопке Button1, будет реализован обработчик этого события, связанный со вводом строк текста в список ListBox1..При нажатии кнопки Button2, информация в первый список будет вводится в цикле. Кнопки Button3иButton4реализуют функции очистки обоих списков и выделения второй строки в первом списке. Операторы кода, характеризующие другие свойства и методы списков реализуются при включении радио кнопок RadioButton1 – RadioButton7.Их характеристики даны в комментариях. Операторы программногокода ,соответствующие каждому событию отображаются в окне редактирования Memo1.
Примеры использования основных свойств и методов компонента CheckListBox демонстрирует приложение ,представленное на рисунках5.11 –5.12.На рисунке 5.11 показан внешний вид интерфейса приложения, а на рисунке 5.12. приведенпрограммный код .
Рис. 5.11Интерфейс приложения, демонстрирующего свойства компонента CheckListBox
В приложение включены два спискаи многострочное окно редактирования . Первое из них(CheckListBox1) используется для ввода текста, второе (CheckListBox2) -для иллюстрации свойств и методов. Окно редактирования Memo1 предназначено для демонстрации операторов кода при выполнении программы . На ряду с этим на форме размещены четыре кнопки типа Button,одна кнопкаBitBtn и шесть радио кнопок типа RadioButton. Назначение этих компонентов и их свойства, установленные во время проектирования, поясняются в таблице 5.6.
Таблица 5.6
Компонент
Свойство
Значение
Форма
Caption
Form1
Кнопки
Caption
Размещение списка в два столбца(Button1)
Caption
Сортировка списка(Button2)
Caption
Определ. выбранных индикаторов(Button3)
Caption
Ввод цифровой информации(Button4)
Caption
Close(BitBtn)
Радио кнопки
Caption
Вставка текста в 1й список (RadioButton1)
Caption
Перенос 4й стр. во 2й сп. (RadioButton2)
Caption
Перенос выд. строки во 2й сп(RadioButton3)
Caption
Определение числа строк сп. (RadioButton4)
Сaption
Изм. текущей позиции строки RadioButton5)
Caption
2 ой элемент сп. станов. недост. (RadioButton6)
Метки
Caption
Список1
Caption
Список2
Списки
Name
CheckListBox1
Name
CheckListBox2
Окно редактиров.
Name
Memo1
Другие свойства компонентов принимаются по умолчанию.
// Программный код приложения, демонстрирующего свойства списка CheckListBox
Рис.5.12 Программный код приложения, демонстрирующего свойства списка CheckListBox
В программном коде( Рис.5.12) строки текста в список CheckListBox 1заносятсяпри создании формы(событие OnGreate)..При нажатии кнопки Button1, исходный список разделяется на два столбца. При нажатии кнопки Button2элементы спискарасполагаются по алфавиту .С помощью кнопки Button3определяются индексы выбранныхпользователем индикаторов и их номера заносятся в список2.При нажатии кнопкиButton4цифроваяинформация в первый список будет вводится в цикле. . Операторы кода, характеризующие другие свойства и методы списков реализуются при включении радио кнопок RadioButton1 – RadioButton6.Их характеристики даны в комментариях. Операторы программногокода ,соответствующие каждому событию отображаются в окне редактирования Memo1.
Ряд свойств, методов и событий комбинированного списка ComboBoxдемонстрирует приложение , приведенное на рисунках 5.13 и 5.14. На первом рисунке показан интерфейс приложения , а на втором –программный код.
Рис.5.13.Интерфейс приложения , демонстрирующего ряд свойств , методов и событий комбинированного списка ComboBox
В приложение включены два многострочных окна редактирования и один комбинированный список . Первое окно редактирования Memo1 используется для отображения свойств и методов комбинированного списка ComboBox1, второе окно Memo2предназначено для демонстрации операторов кода при выполнении программы . На ряду с этим на форме размещены две кнопки типа Button,одна графическая кнопка типа BitBtnи четыре радио кнопки типа RadioButton. Назначение этих компонентов и их свойства, установленные во время проектирования, поясняются в таблице 5.7.
Таблица 5.7
Компонент
Свойство
Значение
Форма
Caption
Дем. свойств и методов списка СomboBox
Кнопки
Caption
Порядковый номер выбран. элем.(Button1)
Caption
Вывод текста по условию(Button2)
Графич.кнопка
Name
BitBtn1
Радио кнопки
Caption
Считывание выд. элемента (RadioButton1)
Caption
Встав. нов. элем. на 4-ю поз(RadioButton2)
Caption
Удаление 3-го элем. списка(RadioButton3)
Caption
Удаление всех элем. списка (RadioButton4)
Окна редактирования
Name
Memo1
Name
Memo1
Комбин. список
Name
ComboBox1
Другие свойства компонентов принимаются по умолчанию.
//Программный код приложения , демонстрирующего ряд свойств , методов и //событий комбинированного списка ComboBox
Рис.5.14 Программный код приложения, , демонстрирующего ряд свойств , методов и событий комбинированного списка ComboBox
В программном коде( Рис.5.14) показано, что заполнение списка ComboBox1 информацией происходит одновременно с созданием формы (событие OnGreate).С помощью кнопк Button1и Button2выполняются операции поопределению номера выбранного элемента и вывод в окно редактора Memo1текста по условию . При включении радио кнопок RadioButton1 – RadioButton4реализуются операции поредактированию элементов списка, смысл которых поясняется в комментариях. . Операторы программногокода ,соответствующие каждому событию отображаются в окне редактирования Memo2.