










if not PClass.InheritsFrom(TPersistent) then Exit;
PTD :
=
GetTypeData(PClass.ClassInfo);
ASeries.Add(Format(
'
%s(%s)
'
, [PClass.ClassName, PTD.UnitName]));
repeat
PTD :
=
GetTypeData(PClass.ClassInfo);
PTI :
=
PTD.ParentInfo
^
;
ASeries.Insert(
0
, Format(
'
%s(%s)
'
, [PTI
^
.Name, PTD.UnitName]));
PClass :
=
PClass.ClassParent;
until not PClass.InheritsFrom(TPersistent);
end;









使用举例












返回结果如下:
TObject(Classes)
TPersistent(Classes)
TComponent(Controls)
TControl(Controls)
TWinControl(StdCtrls)
TButtonControl(StdCtrls)
TButton(StdCtrls)
补充说明
注意上术代码中GetTypeData(PClass.ClassInfo);的使用,必须保证该类是从TPersistent类的派生类才可以这么使用,否则会抛出地址访问错误的。