请问子类怎么调用父类(2层)的同名函数
比如这样的,仅仅返回参数不同
ta = class
function aaa: boolean;tb = class(ta)
function aaa: string;tc = class(tb)
function aaa: integer;我要在tc的aaa里调用父类ta的aaa,用inherited的话调用到的是tb的aaa函数
比如这样的,仅仅返回参数不同
ta = class
function aaa: boolean;tb = class(ta)
function aaa: string;tc = class(tb)
function aaa: integer;我要在tc的aaa里调用父类ta的aaa,用inherited的话调用到的是tb的aaa函数
begin
ta(Self).aaa;
....................^_^
Inherited.aaa
//------------------------------------------------------------------------------
// 替代Inherited,执行祖先的某个Event
//exp.
//procedure TfrmBOM2.FormCreate(Sender: TObject);
//begin
// InheritedParentsNotifyEvent(self,'FormCreate',self.ClassParent.ClassParent,Sender);//他爷爷的事件
// inherited;
//......
//------------------------------------------------------------------------------
procedure InheritedParentsNotifyEvent(const SelfPointer:Pointer;
const EventName:string;ParentClass:TClass;Sender:TObject);procedure InheritedParentsNotifyEvent(const SelfPointer:Pointer;const EventName:string;ParentClass:TClass;Sender:TObject);
var M:TMethod;P:Pointer;
begin
p := ParentClass.MethodAddress(EventName);
if p = nil then exit;
M.Code := p;
M.Data := SelfPointer;
TNotifyEvent(M)(Sender);
end;