核心提示:包含以下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.
迅雷专用高速下载