我现在得到一个控件指针, 不知道是什么控件,可能是第三方,
我想取得它的每个父类名称, 请问该如何做? 谢谢!

解决方案 »

  1.   

    class function InheritsFrom(AClass: TClass): Boolean;
      

  2.   


    BitBtn1: TBitBtn;
    showmessage( bitbtn1.ClassParent.ClassName );
      

  3.   

    如果指针来自本单元,的确是可以用ClassParent和InheritsFrom来判断,
    可以如果指针对象不在本单元,那就判断不出来了.
    比如说Form1上有个控件Button1, 将Button1传到另一个单元中去判断以上方法就失效了.
      

  4.   

    看看这个,不知有没有帮助http://blog.yd153.com/user1/wyattwriy/archives/2007/200.html
      

  5.   

    procedure ParentClassName ( TmpObj: TObject );
    var
        TmpClass : TClass;
    begin
        Tmpclass := TmpObj.ClassType;    while ( TmpClass <> TObject ) do
        begin
            TmpClass := TmpClass.ClassParent;
            ShowMessage ( TmpClass.ClassName );
        end;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
        ParentClassName ( Unit2.Form2.BitBtn1 );
    end;
      

  6.   

    如果指针来自本单元,的确是可以用ClassParent和InheritsFrom来判断,
    可以如果指针对象不在本单元,那就判断不出来了.
    比如说Form1上有个控件Button1, 将Button1传到另一个单元中去判断以上方法就失效了.