Главная » Delphi » Delphi 2006 – Настраиваем визуализируемые колонки

0

Запустим программу. В поле Stars таблицы «Планеты» представлено одно и то же значение — Star. Это не название конкретной звезды, а лишь наименование пристыкованнного по ассоциативной связи класса, которое менять, очевидно, нельзя.

В таблице «Планеты» желательно в дополнение к неизменному названию класса отображать заданное пользователем название звезды, с которой текущая планета связана. Для этого следует настроить дескриптор ehPlanet.

Перейдем в Дизайнер, выделим в проекте элемент ehPlanet и обратимся к его свойству Columns (Доступные столбцы). В открывшемся диалоговом окне добавим дополнительные столбцы, которые будут доступны в таблицах и других элементах пользовательского интерфейса.

Новые столбцы добавляют кнопкой Add текущего диалогового окна. В кнопку встроен раскрывающийся список с двумя пунктами. Первый пункт — EventDerivedColumn — сформирует программный обработчик, в котором будет храниться код расчета нового виртуального поля. Второй пункт — OclColumn — позволяет сформировать значение в столбце с помощью выражения OCL. Выберем последний вариант. В результате в правой части текущего диалогового окна появится описание нового столбца в виде перечня его свойств. Нужное выражение формируется обращением к свойству Expression в этом перечне и вызовом построителя OCL.

Название нового стобца задается в свойстве Name. Введем в него строку StarName. В свойстве IsReadOnly (только чтение) введем значение True. Таким образом мы устанавливаем запрет на изменение названия звезды, связанной с текущей планетой, в таблице «Планеты».

В качестве выражения OCL в свойстве Expression введем строку self. Stars.ElementName. В ней происходит обращение к текущему экземпляру класса Planet (self). Этот элемент ссылается на единственный (в соответствии с кратностью связи) экземпляр класса Star, что задано частью выражения .Stars (название одной из сторон ассоциативной связи). Последним в выражении OCL записано обращение к свойству ElementName этого связанного объекта. Оно хранит название звезды, связанной с данной планетой (рис. 9.13).

Рис. 9.13. Редактор колонок

Нажмем на кнопку ОК, и в таблице «Звезды» в Дизайнере сразу же появится новый столбец StarName. Запустите программу и убедитесь, что в этом поле корректно отображается название родительской звезды (рис. 9.14).

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии