Визуальные компоненты Delphi для работы с БД.
Визуальные компоненты, предназначенные собственно для работы с базами данных, расположены на странице Data Controls. Рассмотрим основные из них, их назначение и наиболее часто используемые свойства.
TDBGrid – предназначен для показа набора данных в табличном виде. Его свойство DataSource должно указывать на компонент TDataSource визуализируемого набора данных.
Набор показываемых на форме столбцов может задаваться двояко.
Если с помощью редактора столбцов (Columns Editor) определен хотя бы один столбец, то в таблице показываются только те столбцы, которые были явно определены в редакторе, и в том виде, в каком они были определены.
Если ни один столбец не определялся с помощью редактора столбцов, то показываются все столбцы набора данных в том виде и в том порядке, в каком они были определены в редакторе полей при создании компонентов TField соответствующего набора данных. Если компоненты TField не создавались, то используется определение полей из самой базы данных.
Как и в случае с редактором полей предпочтительно явное определение показываемых полей в редакторе столбцов, поскольку такой подход обеспечивает большую гибкость.
Для определения столбцов с помощью редактора столбцов в контекстном меню TDBGrid выбирается пункт Columns Editor…, а в контекстном меню появившегося окна пункт Add All Fields. В результате в таблицу будут добавлены все поля. В дальнейшем, поля, не подлежащие показу, удаляются из списка (Delete), а порядок полей в таблице может изменяться перетаскиванием полей в списке редактора столбцов.
|
|
Для каждого из столбцов можно указать ряд свойств, в частности:
· Alignment – способ выравнивания значений в столбце (влево, вправо, по центру);
· ReadOnly – допустимость редактирования значений в столбце;
· PickList – список для выбора возможных значений при редактировании (например, это может быть список единиц измерения);
· Title – свойства заголовка столбца (текст, шрифт и т.п.).
Сам компонент TDBGrid также имеет ряд свойств, определяющих его поведение. Эти свойства сгруппированы под общим наименованием Options. В частности, наибольший интерес представляют следующие из них:
· dgEditing – разрешение на изменение, добавление и удаление записей;
· dgAlwaysShowEditor – выбор поля автоматически переводит его в режим редактирования;
· dgConfirmDelete – перед удалением записи выдается запрос на подтверждение операции;
· dgRowSelect – инверсная полоса показывает всю выбранную запись, а не только выбранное поле (при этом редактирование записи непосредственно в TDBGrid запрещается);
· dgAlwaysShowSelection – инверсная полоса показывается всегда (и тогда, когда фокус управления не принадлежит TDBGrid), чтобы пользователю легко было видеть – какая запись является текущей;
|
|
· dgTabs – клавиша Tab используется для перемещения между столбцами (в обратном направлении – Shift+Tab). Иначе Tab используется для перемещения между компонентами.
Перемещение по таблице возможно с помощью клавиш управления курсором, клавиши Tab и мыши.
Редактирование, добавление и удаление записей непосредственно в DBGrid допускается, если:
- свойство ReadOnly соответствующего НД установлено в False;
- свойство ReadOnly самой DBGrid – False;
- опция dgEditing – True;
- свойство ReadOnly соответствующего столбца – False.
Для редактирования значения некоторого поля необходимо, находясь в нем, нажать Enter (или двойной щелчок мыши) или сразу начать набирать новое значение. При этом индикатор текущей записи в самой левой колонке DBGrid изменит вид с на I .
Для подтверждения изменений, внесенных в поле, следует нажать Enter или перейти к другому полю (Tab). Для отмены изменений следует нажать Esc. Для подтверждения изменений, внесенных во все поля записи, необходимо перейти к другой записи. Для отмены - второй раз нажать Esc.
Замечание: все изменения, вносимые в НД, должны соответствовать правилам БД (ссылочная целостность, бизнес-правила и т.п.), зафиксированным при создании базы. В противном случае изменения будут отвергнуты, и последует сообщение об ошибке (например, Key Violation, если нарушена уникальность первичного ключа или уникального индекса).
|
|
Для вставки новой записи необходимо нажать Insert или, находясь на последней записи, клавишу ↓. Для удаления записи – Ctrl+Delete.
Визуальные компоненты для работы с отдельными полями текущей записииспользуются в тех случаях, когда применение DBGrid вообще нецелесообразно (например, когда в записи много полей или они имеют большой размер) или когда нецелесообразно редактирование записей непосредственно в таблице DBGrid. Иногда DBGrid и компоненты для отдельных полей используются одновременно (например, в DBGrid показываются основные поля, а все остальные поля показываются отдельно только для текущей записи). Возможны и другие применения этих компонентов.
В свойствах визуальных компонентов, предназначенных для работы с отдельными полями, помимо указания набора данных в DataSource указывается также имя конкретного поля в свойстве DataField. Перечислим наиболее часто используемые компоненты (их вид приведен на рис. 19).
TDBText - предназначен для показа значения поля без возможности его редактирования (подобно Label).
|
|
TDBEdit - позволяет редактировать значение поля, которое находится в свойстве Text. При вводе автоматически отслеживается соответствие вводимых символов типу поля. Например, в числовое поле нельзя вводить буквы.
TDBCheckBox - обычно используется для отображения логических значений. Основное свойство - Checked. Когда оно установлено в True в компоненте проставляется «галка» выбора. Собственно значения поля, которым соответствует состояние свойства Checked, указываются в свойствах ValueChecked и ValueUnchecked.
TDBRadioGroup - набор переключателей с зависимой фиксацией. Варианты выбора перечисляются в свойстве Items. Номер выбранного варианта содержится в свойстве ItemIndex (нумерация начинается с нуля).
TDBComboBox - выпадающий список выбора. Items - список вариантов; ItemIndex - выбранный вариант.
TDBLookupComboBox (рис. 20) - по виду аналогичен TDBComboBox, но вместо фиксированного набора вариантов используется для подстановки значений в поля дочернего НД путем выбора соответствующих значений из родительского НД. Например, в записях таблицы наличия содержится условный номер предмета, но при вводе и показе значений этого поля пользователь должен иметь дело не с условным номером предмета, а с его наименованием. В таких случаях и используется TDBLookupComboBox. Его работа определяется следующими свойствами:
· DataSource - указывает на TDataSource дочернего НД (в данном примере NalichieDS), с которым ведется работа;
· DataField - поле дочернего НД (Predmet);
· ListSource - указывает на TDataSource родительского НД (PredmetyDS);
· ListField - поле родительского НД, значения которого будут показываться в списке выбора (Name);
· KeyField - поле родительского НД (NPredm), значение которого будет присвоено полю дочернего НД, указанному в свойстве DataField (Predmet), в результате выбора, сделанного пользователем.
Дата добавления: 2018-05-31; просмотров: 590; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!