Форма: создание столбцов на гриде
[id:52]
Создание столбцов на гриде (Grid) может выполняться: по коммунистически вручную, либо переносом полей из датасорса.
Создайте проект Blog52 и форму BLG_Form52.
Создайте датасорс по имени Address и привяжите его к таблице с этим же именем. На дизайн формы нужно добавить контрол Grid.
Теперь создаем столбцы грида: щелкните правой клавишей на нем и выберите пункт «Создать Control», «ComboBox». Чтобы столбец показывал данные, его нужно привязать к полю таблицы. Для этого у контрола ComboBox в свойстве DataSource выберите источник Address (он единственный на форме), а свойство DataField в значение «type» (это название поля таблицы Address). Этим мы добились, чтобы на гриде появился столбец с типами адресов.
Теперь создадим еще столбец, но менее трудоемким способом Drag&Drop. Удобно открыть в отдельном окне список полей датасорса Address (как это сделать, смотрите шаг «Форма: this is my first time»). Найдите там поле Name и перетащите его на грид. Появиться новый контрол типа StringEdit с именем «Address_Name», который уже привязан к полю Name датасорса Address.
Вот такая получается форма:
Заметили, что в зависимости от добавляемого контрола, доступны табличные поля только совместимого типа? Выбрали выпадающий список ComboBox, и в свойстве DataField система показывает только поля типа перечисление (Enum). А если бы создавали контрол типа RealEdit (он работает с вещественными числами), то и привязаться можно было бы только к полю типа Real.
Интересная особенность: если на гриде не установлено значение датасорса, но в тоже время на его контролах (столбцах) есть привязка к источнику данных и конкретному полю в нем, то данные на гриде не отобразятся. Другими словами, если вы зайдете в свойства контрола Grid и сделаете пустым значение пункта DataSource, то форма перестанет показывать данные. И это не смотря на то, что в наших столбцах русским по белому сказано, откуда надо брать данные.
Задание в догонку: сделайте так, чтобы форма BLG_Form52 могла разворачиваться на полный экран. Для этого нужно изменить всего два свойства одного контрола (мы уже это делали).
Итог
- контролы, которые добавляются на грид, превращаются в его столбцы;
- проще создавать контролы на форме путем перетаскивания полей из датасорса.
1 комментарий:
Наткнулся на эту новость случайно. Но не сожелею. Новость очень понравилась. Очень интересно было прочитать.
Отправить комментарий