动态创建Frame窗体(根据类名,除T以外的字母)
假设有如下Frame窗体 : FromFrame,levelFrame
一、如果需要根据类名动态生成它们,先在各frame窗体的pas中注册它们各自的类。
如下:
如:
四、根据类名动态生成Frame窗体
一、如果需要根据类名动态生成它们,先在各frame窗体的pas中注册它们各自的类。
如下:
initialization
RegisterClass(TFromFrame);
initialization
RegisterClass(TlevelFrame);
二、在调用者的PAS中,引用它们RegisterClass(TFromFrame);
initialization
RegisterClass(TlevelFrame);
如:
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;
五、调用方法: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);