Flexible Frame - механизм добавления
й Перовский, дата публикации 02 января 2003г. |
Часто встречаются задачи, в которых все объекты могут отличаться друг от друга по структуре и алгоритмам. Описывать для каждого экземпляра отдельный тип неэффективно. Алгоритмические особенности отдельного экземпляра могут быть реализованы при помощи обработчиков событий. А как быть с полями? Для решения этой задачи предлагается механизм Flexible Frame (гибкий каркас). Что же стоит за таким парадоксальным названием. Просто у объекта, кроме стандартных полей, имеется список дополнительных именованных атрибутов различного типа.
В прилагаемых модулях список реализован на основе TStrings. Естественно, для использования в качестве атрибутов, все элементарные типы данных должны быть "упакованы" в соответствующие объекты.
Модуль uFFbase содержит описание следующих классов:
- TFF- класс Flexible Frame список именованных атрибутов различных типов;
- TFFI-базовый абстрактный класс элементов списка(Flexible Frame Item);
- TFFITypeForm-диалог определения названия и типа для нового атрибута.
- TFFIinteger - целое число;
- TFFReal - вещественное число;
- TFFIstring - строка;
- TFFIFileName - имя файла.
Модуль uFFform описывает FormFF - диалог для редактирования значений атрибутов простейших типов. Более сложные типы могут иметь собственные формы для редактирования, как это сделано в ObjectInspector-е.
Модуль uFFDic - пример расширения стандартного набора типов. TFFSlovar - класс атрибутов с перечислимым значением, хранит код строки в словаре и код словаря.
Описан список для регистрации словарей. TFFDicForm - диалог для редактирования значений.
Скачать (10K)