示例如下, 但你首先必须保证那些RegisterClass必须运行过 procedure TForm1.Button1Click(Sender: TObject); var f: TClassFinder; begin RegisterClass(TForm1); f := TClassFinder.Create(Nil); try f.GetClasses(ClassCallBack); finally f.Free; end; end;procedure TForm1.ClassCallBack(AClass: TPersistentClass); begin Memo1.Lines.Add(AClass.ClassName); end;
procedure TForm1.Button1Click(Sender: TObject); var c: TClassFinder; begin c := TClassFinder.Create(TForm); try c.GetClasses(DisplayClass); finally c.Free; end; end;procedure TForm1.DisplayClass(AClass: TPersistentClass); begin if (AClass <> TForm) and AClass.InheritsFrom(TForm) then Memo1.Lines.Add(AClass.ClassName); // ListBox1.Items.Add(AClass.ClassName); end; initialization RegisterClass(TForm1);
procedure TForm1.Button1Click(Sender: TObject);
var
f: TClassFinder;
begin
RegisterClass(TForm1);
f := TClassFinder.Create(Nil);
try
f.GetClasses(ClassCallBack);
finally
f.Free;
end;
end;procedure TForm1.ClassCallBack(AClass: TPersistentClass);
begin
Memo1.Lines.Add(AClass.ClassName);
end;
var
c: TClassFinder;
begin
c := TClassFinder.Create(TForm);
try
c.GetClasses(DisplayClass);
finally
c.Free;
end;
end;procedure TForm1.DisplayClass(AClass: TPersistentClass);
begin
if (AClass <> TForm) and AClass.InheritsFrom(TForm) then
Memo1.Lines.Add(AClass.ClassName);
// ListBox1.Items.Add(AClass.ClassName);
end;
initialization
RegisterClass(TForm1);
TPersistent
TMenuItem
TForm1
TForm
TCustomForm
TScrollingWinControl
TWinControl
TControl得到一大堆没用的东西,没有我自己注册的内容
正是你想要的
TAAForm=class(TForm)
Tmyform=class(TAAForm)AClass.InheritsFrom(TAAForm) 返回false
得到的是所有registerclass注册过的类,还是最近一次loadpackage时注册过的类?谢谢spirit_sheng(老盛)和aiirii(ari-http://spaces.msn.com/members/aiirii/) ,请接分!
另外请spirit_sheng(老盛)
到http://community.csdn.net/Expert/topic/4420/4420570.xml?temp=1.440066E-02
再领40分aiirii在那里已经有发言了!
分已经够多了, 谢了, 再领就不必了