воскресенье, 9 декабря 2007 г.

Форма: создание столбцов на гриде

[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 комментарий:

Анонимный комментирует...

Наткнулся на эту новость случайно. Но не сожелею. Новость очень понравилась. Очень интересно было прочитать.