Статьи Королевства Дельфи

       

Flexible Frame - механизм добавления


й Перовский,
дата публикации 02 января 2003г.


Часто встречаются задачи, в которых все объекты могут отличаться друг от друга по структуре и алгоритмам. Описывать для каждого экземпляра отдельный тип неэффективно. Алгоритмические особенности отдельного экземпляра могут быть реализованы при помощи обработчиков событий. А как быть с полями? Для решения этой задачи предлагается механизм Flexible Frame (гибкий каркас). Что же стоит за таким парадоксальным названием. Просто у объекта, кроме стандартных полей, имеется список дополнительных именованных атрибутов различного типа.

В прилагаемых модулях список реализован на основе TStrings. Естественно, для использования в качестве атрибутов, все элементарные типы данных должны быть "упакованы" в соответствующие объекты.

Модуль uFFbase содержит описание следующих классов:

  • TFF- класс Flexible Frame список именованных атрибутов различных типов;
  • TFFI-базовый абстрактный класс элементов списка(Flexible Frame Item);
  • TFFITypeForm-диалог определения названия и типа для нового атрибута.
Модуль uFF предоставляет простейшие типы элементов списка:
  • TFFIinteger - целое число;
  • TFFReal - вещественное число;
  • TFFIstring - строка;
  • TFFIFileName - имя файла.

Модуль uFFform описывает FormFF - диалог для редактирования значений атрибутов простейших типов. Более сложные типы могут иметь собственные формы для редактирования, как это сделано в ObjectInspector-е.

Модуль uFFDic - пример расширения стандартного набора типов. TFFSlovar - класс атрибутов с перечислимым значением, хранит код строки в словаре и код словаря.

Описан список для регистрации словарей. TFFDicForm - диалог для редактирования значений.

Скачать (10K)



Содержание раздела