Справочные поля хранят не сами значения, а ссылку на значение в другой таблице. Для редактирования таких полей используется выпадающий список (Combo Box).
Таблица 1. Общие свойства компонентов
Название | Свойство | Описание |
---|---|---|
Name | Название | Уникальное название в пределах формы |
Left | Лево | Абсцисса положения верхнего левого угла компонента относительно родительского компонента. |
Top | Верх | Ордината положения верхнего левого угла компонента относительно родительского компонента. |
Width | Ширина | Ширина компонента, в пикселях |
Height | Высота | Высота компонента, в пикселях |
Visible | Видимость | Признак видимости компонента. |
Anchors | Якоря | Фиксация положения верхней, нижней, правой или левой стороны компонента относительно родительского. |
Font | Шрифт | Группа свойств для настройки шрифта (тип, размер, цвет и стиль), которым отображается текст в выпадающем списке и текст выбранного значения (см. свойство Style). |
BgColor | Цвет фона | Цвет фона выпадающего списка и самого компонента (см. свойство Style). |
TabStop | Табулостоп | Флаг участия компонента в обходе при нажатии клавиши <Tab> |
TabOrder | Последовательность табуляции | Порядковый номер при обходе клавишей <Tab> |
Enabled | Доступен | Свойство определяет, доступен ли данный элемент для взаимодействия и можно ли ему передать фокус. |
ReadOnly | Только для чтения | Запрет на изменение |
Constraints | Ограничения | Определяют минимальные и максимальные размеры элемента при его растягивании |
Hint | Подсказка | Текст всплывающей подсказки. |
ShowHint | Показать подсказку | Флаг, определяющий, нужна ли всплывающая подсказка для данного элемента. |
Cursor | Курсор | Внешний вид курсора при наведении указателя на компонент. |
BiDiMode | Режим двунаправленности | Управление режимом автоматического распознавания направления ввода или отображения данных. |
📝 Подробное описание общих свойств находится в разделе “Формы“
Таблица 2. Общие свойства компонент для работы с данными
Свойство | Название | Описание |
---|---|---|
TableName | Таблица | Редактируемое поле + редактируемая таблица |
FieldName | Поле | Отображаемое поле из таблицы – справочника |
BevelKind | Тип фаски | Влияет на внешний вид компонента. см. свойство Style |
BevelInner | Внутренняя фаска | Влияет на внешний вид компонента. см. свойство Style |
BevelOuter | Внешняя фаска | Влияет на внешний вид компонента. см. свойство Style |
CharCase | Заглавные / прописные | Управление вводом заглавных/строчных символов. |
MaxLength | Максимальная длина | Ограничение длины вводимого текста. |
Text | Текст | Отображаемый текст. |
Increm.Search | Кнопка поиска | Используется для создания фильтра с автоматическим обновлением. |
📝 Подробное описание общих свойств находится в разделе “Компоненты для ввода данных“.
Настройка источника данных для этого компонента отличается от настроек остальных компонент.
Например, при редактировании списка городов (city) нам потребуется указать ссылку на страну (country), в которой находится город:

Для этого необходимо настроит свойство ForeignKey: в выпадающем списке выбрать таблицу и поле с внешним ключом. А в свойстве FieldName выбрать поле из таблицы-справочника, содержимое которого должно отображаться в выпадающем списке.

Таблица 3. Свойства ComboBox
Свойство | Название | Описание |
---|---|---|
ForeignKey | Внешний ключ | Необходимо выбрать поле редактируемой таблицы, содержащее внешний ключ – ссылку на таблицу, которая содержит справочные значения. Если комбобокс не участвует в непосредственном отображении и вводе данных, то в поле ForeignKey можно набрать название нужной таблицы вручную. |
FieldName | Название поля | Необходимо выбрать поле в таблице, на которую ссылается внешний ключ. Это поле будет отображаться в выпадающем списке. Если нужно отобразить не одно поле, а несколько, наберите строковое выражение, в котором названия полей должны быть в фигурных скобках, например: {name} ({code}) ![]() |
Filter | Фильтр | Дополнительная возможность для фильтрации данных, отображаемых в выпадающем списке. Настройка фильтра выпадающего списка аналогична настройке фильтра таблицы, см. раздел Отображение табличных данных. Фильтрация. |
DropDownCount | Число отображаемых одновременно элементов в выпадающем списке | По умолчанию выпадающий список одновременно отображает не более 8 элементов |
DefaultIndex | Индекс по умолчанию | Индекс влияет на отображаемый элемент при добавлении новой записи. Первый элемент в списке имеет индекс 0. Если установлено свойство FirstEmptyItem = True, то добавляется первый элемент: пустая строка со значением NULL |
Searchable | Возможность поиска | При установке данного флага внешний вид компонента изменяется для поиска элементов в списке. Поиск (фильтрация списка) идёт по вхождению, без учёта регистра.![]() |
Sort | Сортировка | Данный флаг сортирует список по алфавиту![]() |
SortField | Поле сортировки | Можно указать одно или несколько полей (через запятую), по которым будет производиться сортировка данных. Имеется выпадающий список с допустимыми значениями полей. Если данное поле пустое, то для сортировки будет использовано поле отображения данных. |
SortOrder | Направление сортировки | ![]() В выпадающем списке можно выбрать одно из двух значений, определяющих направление сортировки: по возрастанию (Ascending) или по убыванию (Descending). Направление будет относиться ко всем полям, участвующим в сортировке. |
ParentComboBox | Родительский Combo Box | Данное свойство позволяет организовать каскадную фильтрацию данных. см. далее раздел “Каскадная фильтрация”. |
AutoComplete | Автозаполнение | При включенном автозаполнении по мере набора текста он дополняется найденным из списка значением. |
AutoWidth | Автоширина | При установке флага ширина выпадающего списка автоматически увеличивается, подстраиваясь под ширину отображаемых данных. |
FirstEmptyItem | Первый пустой элемент | Флаг указывает, нужно ли добавлять в список значений пустой элемент, который используется для выбора значения NULL |
MultiSelect | Множественный выбор | Флаг активирует множественный выбор в выпадающем списке:![]() Применяется в механизме фильтрации данных (см. гл. 9.8).Результат такого выбора для ввода данных можно использовать только с помощью скриптов. |
Style | Стиль | Стиль отображения определяет внешний вид компонента. Отображение стиля зависит от версии операционной системы. В таблице 4 приведены примеры для Win10. |
TextHint | Текстовая подсказка | Данная подсказка отображается курсивом поверх выпадающего списка, если ни один из элементов списка не был выбран.![]() |
Каскадная фильтрация
Например, таблицы имеют следующие зависимости:

Тогда на форме редактирования города необходимо установить два выпадающих списка: список континентов и список стран, а у последнего в свойстве ParentComboBox указать первый из комбобоксов.

При выборе значения в верхнем комбобоксе значения в нижнем комбобоксе будут автоматически отфильтрованы:

☝ Данный механизм не работает, если у верхнего комбобокса установлено свойство MultiSelect
Стиль отображения
Внешний вид компонента определяется свойством Style, а также дополнительными свойствами BevelKind, BevelInner и BevelOuter. Но в большей степени внешний вид определяется операционной системой.
Таблица 4. Свойство Style
Style | Описание |
---|---|
csDropDown | Выпадающий список со строкой ввода текста.![]() |
csDropDownList | Выбор значения только из списка. Значение по умолчанию.![]() |
csOwnerDrawFixed | Определяет раскрывающийся список, без поля редактирования. Каждый элемент в списке имеет высоту, указанную свойством ItemHeight.![]() В MVDB данный стиль может отображаться с графическими артефактами, не рекомендуется к использованию. |
Результат настройки свойств для настойки фаски (внешнего вида границы, имитирующий объем) зависит от стиля и операционной системы.
Таблица 5. Вид фаски (свойство BevelKind)
BevelKind | Описание |
---|---|
bkNone | Без фаски. Значение по умолчанию. Внешний вид определяется операционной системой. Компонент выгляди плоским, кнопка без границы.![]() |
bkFlat | Плоская. Компонент и кнопка выпадающего списка выглядя плоскими.![]() |
bkSoft | Мягкая. При этом стиле в полной мере можно увидеть, как работают свойства BevelInner и BevelOuter, предающие визуальный объем.![]() |
bkTile | Плитка. Плоский внешний вид с легким намеком на объемность.![]() |
Таблица 6. Внешняя и внутренняя фаска.
Значение | Описание |
---|---|
bvNone | Нет |
bvLowered | Утопленная |
bvRaised | Выдавленная |
bvSpace | Незаполненное пространство |
📝 Названия стилей фасок не всегда соответствуют визуальному эффекту, который зависит от операционной системы, вида фаски и стиля компонента.
Таблица 7. Некоторые сочетание стиля и фасок
BevelKind | BevelInner | BevelOuter | Описание |
---|---|---|---|
bkFlat | bvNone | bvNone | ![]() |
bkFlat | bvRaised | bvLowered | ![]() |
bkSoft | bvRaised | bvLowered | ![]() |
☝ К сожалению, не у всех визуальных компонентов, используемых в MVDB, имеются аналогичные свойства, управляющие стилем (внешним видом), поэтому его сложно использовать в полной мере для создания стильного пользовательского интерфейса.