关于继承的问题,请大家帮帮忙(100分)

  • 主题发起人 主题发起人 不懂编程
  • 开始时间 开始时间

不懂编程

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样才能得知当前类是某个类的子类或是资类的子类或是~~~
比如我怎样才可以知道当前类是不是由TControl或是其子类继承来的?
 
在你的类声明的地方,例如
TForm1 = class(TForm)
按住Ctrl键用鼠标点击TForm,会跳转到TForm的声明处,如
TForm = class(TCustomForm)
同样,按住Ctrl键用鼠标点击TCustomForm,会跳转到TCustomForm的声明处,如
TCustomForm = class(TScrollingWinControl)
依此类推,就可以找到TForm1的每一上级父类,最上级是TObject类。

至于你需要找的其他类,也可以用这样的方法。
当然,最简单的方法是查找TForm类的帮助,然后察看Hierarchy关系,查找父类。
我上面说的方法适用于所有的类,如果Delphi帮助里没有你要找的东西,那么可以通过我的方法自己去画出继承关系图。
 
楼上的老兄,我是说在程序里判断,我现在要对窗体上的所有控件作判断,只要是从TWinControl
继承过来的,都要作相应的处理,可是这么多控件不可能一一列举出来再说窗体上的控件大部分是
活的(临时创建的),现在该怎么办呀?
 
Determines the relationship of two object types.
class function InheritsFrom(AClass: TClass): Boolean;
Description
Use InheritsFrom to determine if a particular class type is an ancestor of
an object. InheritsFrom returns True if the object type specified in the AClass
parameter is an ancestor of the object type or the type of the object itself.
Otherwise, it returns False.
Note: The is and as operators use InheritsFrom in their implementations.
The is operator, however, can only determine the inheritance relationship of
an instance. As a class method, InheritsFrom can determine the relationship
of class references.
 
找子类的函数没有(哪个父亲会预先知道孩子?:)),找父类的函数如上,上溯后应该可以判断了
 
试试先:)
 
DELPHI帮助中好象由这方面的例子,自己找找吧,我记不太清了。
 
procedure TForm1.Button1Click(Sender: TObject);
begin
if Self is TForm then ShowMessage ('我是由Tform继承来的');
if Self is Tcompoment then ShowMessage ('我是由Tcompoment继承来的');
.....

end;
 
呵呵,楼上的老兄真会搞笑,我的控件做好了,是生成不规则窗体的,特别感谢tseug
谁要要,给我说一声吧,如果要传上去,该传到哪里呢?
:)
 
希望大伙给提点意见:)
 
后退
顶部