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

动态创建Frame窗体(根据类名,除T以外的字母)initialization
动态创建Frame窗体(根据类名,除T以外的字母)RegisterClass(TFromFrame);
动态创建Frame窗体(根据类名,除T以外的字母)
动态创建Frame窗体(根据类名,除T以外的字母)initialization
动态创建Frame窗体(根据类名,除T以外的字母)RegisterClass(TlevelFrame);
动态创建Frame窗体(根据类名,除T以外的字母)
二、在调用者的PAS中,引用它们
如:
动态创建Frame窗体(根据类名,除T以外的字母)uses ufromframe, ulevelframe;
三、取得类名
四、根据类名动态生成Frame窗体
动态创建Frame窗体(根据类名,除T以外的字母)procedure lp_ShowFrame(FrameName:String);
动态创建Frame窗体(根据类名,除T以外的字母)
type
动态创建Frame窗体(根据类名,除T以外的字母)TFrameClass 
= Class of TFrame;
动态创建Frame窗体(根据类名,除T以外的字母)
var
动态创建Frame窗体(根据类名,除T以外的字母)FrameClass:TFrameClass;
动态创建Frame窗体(根据类名,除T以外的字母)FFrame:TFrame;
动态创建Frame窗体(根据类名,除T以外的字母)
begin
动态创建Frame窗体(根据类名,除T以外的字母)  
if FFrame <> nil then FFrame:=nil;
动态创建Frame窗体(根据类名,除T以外的字母)
动态创建Frame窗体(根据类名,除T以外的字母)  FrameClass :
= TFrameClass(FindClass('T'+FrameName));
动态创建Frame窗体(根据类名,除T以外的字母)  FFrame :
= FrameClass.Create(self);
动态创建Frame窗体(根据类名,除T以外的字母)
动态创建Frame窗体(根据类名,除T以外的字母)  
with FFrame do begin
动态创建Frame窗体(根据类名,除T以外的字母)      Parent :
= tab_detail;
动态创建Frame窗体(根据类名,除T以外的字母)      Visible :
= true;
动态创建Frame窗体(根据类名,除T以外的字母)      Top :
= 40;
动态创建Frame窗体(根据类名,除T以外的字母)      Font.Name :
= '宋体';
动态创建Frame窗体(根据类名,除T以外的字母)      Font.Size :
= 9;
动态创建Frame窗体(根据类名,除T以外的字母)  
end;
动态创建Frame窗体(根据类名,除T以外的字母)
end;
五、调用方法:
动态创建Frame窗体(根据类名,除T以外的字母)lp_ShowFrame(FrameName); 

相关文章:

  • 2021-11-17
  • 2021-09-25
  • 2022-12-23
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
  • 2021-07-18
  • 2022-02-14
  • 2022-12-23
相关资源
相似解决方案