核心提示:包含以下3个函数:procedure ExtendObject(const AObject, AExtension: TObject);function GetObjectExtension(cons...
包含以下3个函数:
procedure ExtendObject(const AObject, AExtension: TObject);
function GetObjectExtension(const AObject: TObject): TObject;
function RemoveObjectExtension(const AObject: TObject): TObject;
调用示例代码:
uses
SysUtils,
ObjectExtensions_Intrusive;
type
TStrExtenstion = class
end;
TIntExtension = class
end;
procedure DoStuff(const A: TObject);
var
Extension: TObject;
begin
if A = nil then
Exit;
Extension := GetObjectExtension(A);
if Extension = nil then
Exit;
WriteLn(Extension.ClassName);
end;
var
a, b, c: TObject;
begin
a := TObject.Create;
b := TObject.Create;
c := TObject.Create;
ExtendObject(a, TStrExtenstion.Create);
ExtendObject(b, TIntExtension.Create);
DoStuff(a);
DoStuff(b);
DoStuff(c);
ReadLn;
end.
迅雷专用高速下载



