动态创建Frame窗体(根据类名,除T以外的字母)

假设有如下Frame窗体 :  FromFrame,levelFrame
一、如果需要根据类名动态生成它们,先在各frame窗体的pas中注册它们各自的类。
如下:

initialization
RegisterClass(TFromFrame);

initialization
RegisterClass(TlevelFrame);
二、在调用者的PAS中,引用它们
如:
uses ufromframe, ulevelframe;
三、取得类名
四、根据类名动态生成Frame窗体
procedure lp_ShowFrame(FrameName:String);
type
TFrameClass 
= Class of TFrame;
var
FrameClass:TFrameClass;
FFrame:TFrame;
begin
  
if FFrame <> nil then FFrame:=nil;

  FrameClass :
= TFrameClass(FindClass('T'+FrameName));
  FFrame :
= FrameClass.Create(self);

  
with FFrame do begin
      Parent :
= tab_detail;
      Visible :
= true;
      Top :
= 40;
      Font.Name :
= '宋体';
      Font.Size :
= 9;
  
end;
end;
五、调用方法:
lp_ShowFrame(FrameName); 
posted @ 2008-05-10 14:40  sonicit  阅读(1303)  评论(0编辑  收藏  举报