Інспектор об'єктів і метадані

Сторінка 1 з 7

Предмет даної статті - інспектор об'єктів як засіб, доступне кінцевому користувачеві деякої прикладної програми. Саме поняття "інспектор" трактується в даному випадку дуже широко: інспектор - це інструмент прикладної програми, за допомогою якого користувач може подивитися і змінити властивості тих об'єктів, з якими він працює. Відзначимо, що мова йде про будь-яких об'єктах прикладного рівня, а не тільки про візуальних компонентах (як в Delphi).

Мотивація і постановка задачі

При спробі сформулювати вимоги до інспектора об'єктів у мене вийшов такий список:

інспектор повинен мати можливість працювати з об'єктами будь-яких типів. Чи не передбачається походження об'єктів від будь-якого спеціального базового класу,

об'єкти можуть мати складну внутрішню структуру, тобто, містити вкладені об'єкти, які, в свою чергу, також можуть мати вкладені об'єкти. Вкладеність об'єктів необмежена (в розумних межах),

class function ObjectName (AObject: TObject): String; virtual;

class function TypeName: String; virtual;

class function TypeInfo: PGsvObjectInspectorPropertyInfo; virtual;

class function ChildrenInfo (Index. Integer):

class procedure FillList (AObject: TObject; List: TStrings); virtual;

class procedure ShowDialog (Inspector: TComponent;

const EditRect: TRect); virtual;

class function IntegerToString (const Value: LongInt): String; virtual;

class function StringToInteger (const Value: String): LongInt; virtual;

class function CharToString (const Value: Char): String; virtual;

class function StringToChar (const Value: String): Char; virtual;

class function FloatToString (const Value: Extended): String; virtual;

class function StringToFloat (const Value: String): Extended; virtual;

class function ObjectToString (const Value: TObject): String; virtual;