Delphi. Панель инструментов Snandad. Компонент ComboBox.

Часть 1

Ранее мы познакомились с компонентом TlistBox, который позволяет выбрать из списка одно (или сразу несколько) значений и использовать их в дальнейшем по своему усмотрению.

На форме ListBox отображается с заданным количеством строк. Если строк в списке больше,чем объявленное количество, то автоматически появляется полоса прокрутки.

У этого компонента есть один недостаток, который делает его иногда не очень удобным в использовании — он занимает довольно много места на форме.

А если его сделать небольшим по высоте, то при значительном количестве строк пользоваться им становится неудобно.

Если нет принципиальной потребности выбирать сразу несколько строк из списка, то удобнее пользоваться компонентом «ComboBox», который, к тому же, имеет ряд удобных дополнительных свойств.

Разместить на форме его можно, выбрав соответствующую пиктограмму на панели инструментов.

Панель инструментов Standad

Начальное отображение компонента ComboBox.

После размещения на форме компонент «ComboBox» выглядит следующим образом:

Компонент ComboBox

Если запустить программу и открыть список, нажав на кнопку со стрелкой, то мы увидим:

Пустой список

то есть список пуст.

Свойство «Items».

Первоначально список значений компонента пуст. Поэтому его надо надо заполнить значениями. Для этого используем свойство свойство «Items»:

Свойство "Items"

После нажатия на кнопку с тремя точками откроется редактор:

Редактор значений списка.

Мы в него записали десять строк с числами от 1 до 10.

После нажатия на «OK» значения окажутся занесенными в список.

Если теперь запустить программу и открыть список, то мы увидим:

Пример отображения раскрытого списка

Почему отобразилось только восемь строк, хотя мы ввели десять?

Свойство «DropDownCount»

Оно определяет количество строк, отображаемых в списке после его раскрытия. По умолчанию его значение равно 8, что мы и видим в приведённом примере. Можно изменить это значение, например, уменьшив его.

Если сделать щелчок по строке, то записанное в ней значение появится в строке редактирования. В частности, после щелчка по строке со значением «3», это значение появится в строке редактирования, а сам список закроется.

Пример строки редактирования

Значение в строке редактирования можно произвольно изменять (поэтому она и называется строкой редактирования). В дальнейшем это значение можно прочитать и использовать в работе программы.

Свойство «Text»

Значение, записанное в свойстве «Text», отображается в строке редактирования. Это свойство можно изменять как на этапе разработки формы, так в процессе прогона программы.

Свойство «MaxLength»

Ограничивает количество символов, которое можно напечатать в строке редактирования. При MaxLength=0 длина строки (количество символов) не ограничено.

Свойство «ItemIndex»

Определяет, из строки с каким номером будет взято значение, отображаемое в строе редактирования при запуске программы. Если это значение равно «-1» (отсчёт строк ведётся от 0), то в строке редактирования будет показано значение из свойства «Text». При прогоне программы в этом свойстве будет отображаться номер выбранной в списке строки, по которой щёлкнули мышью. Коме того, если выбрать значение из списка, а затем отредактировать его в строке редактирования, то значение «ItemIndex» сбрасывается в «-1».

Свойство «Color»

Определяет цвет фона компонента (например «clYellow»).

Свойство «Color»

Свойство «AutoComplete»

Это свойство предоставляет удобную возможность. Для пояснения добавим в список ещё одну строку: «1234567890». Теперь запустим программу и наберём в строке редактирования значение «12». Если свойство «AutoComplete» установлено в «True», то в строке редактирования, после того как будут введены значения «1» и «2», мы увидим:

Автозавершение AutoComplete

то есть произойдёт автоматический выбор строки, у которой начало совпадает с введёнными значениями.

Свойство «AutoDropDown».

Это свойство будет актуально только тогда, когда свойство «AutoComplete» установлено в «True». Задав свойству «AutoDropDown» значение, равное «True», мы получим следующий эффект. При попытке ввести в строку редактирования какое либо значение, список значений будет раскрыт автоматически. Например:

Пример списка

Свойство «AutoCloseUp».

Это свойство противоположно предыдущему. То есть,если оно установлено в «True» и список раскрыт, то при попытке ввода символа в строку редактирования список сразу закроется. Это свойство также работает при значении «AutoDropDown», равном «True».

Замечание. Свойства «AutoDropDown» и «AutoCloseUp» взаимоисключают друг друга, поэтому делать активным можно только одно свойство.

Свойство «Cursor».

Позволяет выбрать вид курсора, который будет появляться при нахождении курсора над компонентом. Например, курсор с типом «crHandPoint» — рука:

Курсор "рука"

Свойство «Hint».

Это свойство позволяет выводить контекстную подсказку, привязанную к компоненту. Текст подсказки (например: «Это выпадающий список») надо ввести в поле свойства «Hint». Подсказка появляется при наведении курсора на поле компонента:

Подсказка Hint

Замечание. Свойство «ShowHint» должно быть установлено в «True».

Свойство «ItemIndex».

При запуске программы это свойство позволяет отображать в строке редактирования значение из списка, имеющее указанный индекс. Например, если задать для «ItemIndex» значение «2», то отобразится содержимое третьей строки списка (вспомним, что отсчет ведётся от нуля).

Демонстрация свойства ItemIndex

Замечание. Не забывайте, чтобы введенное в поле свойства значение вступило в силу, надо нажать «Enter».

Свойство «Sorted».

Если это свойство установлено в «True», то строки в списке будут отсортированы по алфавиту. Список будет автоматически пересортирован при добавлении новой строки.

Свойство «Font».

Это свойство определяет параметры шрифта. В частности, параметр «Size» определяет высоту шрифта в строках (высота указывается либо в пикселях /Height шрифта/, либо в относительных единицах /Size шрифта/).

Свойство «Style».

Определяет особенности отображения компонента.

При значении этого свойства равным «csDropDown», компонент будет иметь стандартный вид — доступны строка редактирования и список.
При значении «csDropDownList» строка редактирования не доступна для изменения значений в ней. Можно только выбирать значения из списка, которые будут отображаться в ней.
При значении «csSimple» доступ к списку закрыт и можно пользоваться только строкой редактирования. Выбор из списка возможен только программно.
Значения из списка можно получить следующим образом.

Если установлен режим «AutoComplete» (автозавершение), то можно набрать несколько первых знаков, уникальных для строки в списке. Тогда вся строка появляется в поле редактирования.
Второй способ — выбирать строку программно.

***

Оставшиеся значимые свойства и способы ручной отрисовки строк списка рассмотрим в следующей статье.

Обновлено: 07.07.2021 — 13:33

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *