Сторінка 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;