在一个有继承的过程中,如何获取当前类的信息,如类名(在线等待),或者有没有指向类本身的东东 (50分)

  • 主题发起人 主题发起人 proyer
  • 开始时间 开始时间
P

proyer

Unregistered / Unconfirmed
GUEST, unregistred user!
执行一个事件,该事件父类也有定义,我用Inherit,在每个类执行中,想返回当前在执行中的类的信息。
或者有没有指向类本身的东东。
如在窗体实例中有个指向窗体实例的self
 
不太明白,能否写段代码说明?
 
form1是form2的基类
procedure Tform2.FormCreate(Sender: TObject);
begin
showmessage(self.caption);
end;

procedure Tform1.FormCreate(Sender: TObject);
begin
showmessage(self.caption);//在这里我想获取form1的类的信息。
end;
 
是不是这个:
showmessage(self.ClassName);
 
self.classname只是当前实例的类名,并不是基类的类名。
getclass也只能获取实例的类名。
即如果我要 create(Tform2,form2)的时候,self是form2的实例。
所以showmessage(self.classname)是两次显示 form2
 
showmessage(self.ClassParent.ClassName);
 
我其实是想知道代码在执行父类时,代码所在的类的类信息。而不是单纯某个类。
而且如果继承不只两个,
showmessage(self.ClassParent.ClassName)
这个也不能用。
 
proyer:
我还是有点不大明白你的要求,是不是这样的,Tform2继承自Tform1,但Tform2的某个事件,比如buttonclick,需要知道Tform1的caption,或者tform1.label1等等的信息?
 
form1,form2,form3,form4依次继承
每个create事件中都有 showmessage
但我想在create form4时,分别show出form1,form2,form3,form4的类名。
你有没QQ,我的是 19544646
 
??这个问题怎么没人答啊。高手帮帮忙啊。
 
后退
顶部