|
||||||||||||||||||||||||||
|
100 компонентов общего назначения Delphi 53.3.5. Компоненты выбора из списков - ListBox, CheckBox и ComboBoxПример компонентов, рассмотренных в данном разделе и обеспечивающих выбор из списка, приведен на рис. 3.10.
Компоненты ListBox и ComboBox отображают списки строк. Они отличаются друг от друга прежде всего тем, что ListBox только отображает данные и позволяет пользователю выбрать из них то, что ему надо, a ComboBox позволяет также редактировать данные. Кроме того различается форма отображения списков. ListBox отображает список в раскрытом виде и автоматически добавляет в список полосы прокрутки, если все строки не помещаются в окне компонента. ComboBox позволяет отображать список как в развернутом виде, так и в виде выпадающего списка, что обычно удобнее, так как экономит площадь окна приложения . Основное свойство обоих компонентов, содержащее список строк, — Items , имеющее рассмотренный ранее тип TStrings . Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings (см. раздел 3.3.4 ) — Clear , Add и другими. В компоненте ListBox имеется свойство MultiSelect , разрешающее пользователю множественный выбор в списке (на рис. 3.10 это свойство установлено в true в среднем верхнем списке). Если MultiSelect = false (значение по умолчанию), то пользователь может выбрать только один элемент списка. В этом случае можно узнать индекс выбранной строки из свойства ItemIndex , доступного только во время выполнения. Если ни одна строка не выбрана, то ItemIndex = -1 . Начальное значение ItemIndex невозможно задать во время проектирования. По умолчанию ItemIndex = -1 . Это означает, что ни один элемент списка не выбран. Если вы хотите задать этому свойству какое-то другое значение, т.е. установить выбор по умолчанию, который будет показан в момент начала работы приложения, то сделать это можно, например, в обработчике события OnCreate формы, введя в него оператор вида ListBox1.ItemIndex:=0; Если допускается множественный выбор ( MultiSelect = true ), то значение ItemIndex соответствует тому элементу списка, который находится в фокусе. При множественном выборе проверить, выбран ли данный элемент, можно проверив свойство Selected[Index: Integer] типа Boolean . На способ множественного выбора при MultiSelect = true влияет еще свойство ExtendedSelect . Если ExtendedSelect = true , то пользователь может выделить интервал элементов, выделив один из них, затем нажав клавишу Shift и переведя курсор к другому элементу. Выделить не прилегающие друг к другу элементы пользователь может, если будет удерживать во время выбора нажатой клавишу Ctrl . Если же ExtendedSelect = false , то клавиши Shift и Ctrl при выборе не работают. Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента ListBox (в среднем верхнем списке на рис. 3.10 свойство Columns равно 2). Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту. Свойство Style , установленное в lbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения. Имеется еще один компонент, очень похожий на ListBox — это список с индикаторами CheckListBox . Выглядит он так же, как ListBox (средний нижний список на рис. 3.10), но около каждой строки имеется индикатор, который пользователь может переключать. Индикаторы можно переключать и программно, если список используется для вывода данных и необходимо в нем отметить какую-то характеристику каждого объекта, например, наличие товара данного наименования на складе. Все свойства, характеризующие компонент CheckListBox как список, аналогичны ListBox , за исключением свойств, определяющих множественный выбор. Эти свойства компоненту CheckListBox не нужны, поскольку в нем множественный выбор можно осуществлять установкой индикаторов. Свойства компонента CheckListBox , связанные с индикаторами, будут рассмотрены в разделе 5.5 . Рассмотрим теперь компонент ComboBox . Стиль изображения этого компонента определяется свойством Style , которое может принимать следующие основные значения:
Выбор пользователя или введенный им текст можно определить по значению свойства Text . Если же надо определить индекс выбранного пользователем элемента списка, то можно воспользоваться обсуждавшимся в компоненте ListBox свойством ItemIndex . Все сказанное выше об ItemIndex и о задании его значения по умолчанию справедливо и для компонента ComboBox . Причем для ComboBox задание начального значения ItemIndex еще актуальнее, чем для ListBox . Если начальное значение не задано, то в момент запуска приложения пользователь не увидит в окне компонента одно из возможных значений списка и, вероятнее всего, не очень поймет, что с этим окном надо делать. Если в окне проводилось редактирование данных, то ItemIndex = -1 . По этому признаку можно определить, что редактирование проводилось. Свойство MaxLength определяет максимальное число символов, которые пользователь может ввести в окно редактирования. Если MaxLength = 0 , то число вводимых символов не ограничено. Как и в компоненте ListBox , свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту. |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил