现有一字符类型的变量str,它存储的是一个窗体的类名,如:TForm1,如何由str将类名为str的窗体创建出来???
解决后可以加分!
解决后可以加分!
解决方案 »
- 我抄了一段加密代码,好象不能进行中文加密!大家帮我看看!
- 急问,如何关闭在子线程运行indy tcpclient的连接!! 报错啊。。。
- 数据插入问题
- 为什么我的发光二极管不发光?
- 在2K下运行正常的串口通讯程序,到XP下运行偶尔出现类似通讯阻塞("死机")的现象。
- 在DELPHI中如何实现对EXCEL表格的合并与添加边框的操作
- 高手请进(100分)
- 在SQL 语句中进行字段相除,如何处理除数为0的情况
- 傻问题!帮帮我!
- 关于SQL查询的问题:库中 的字段是英文的,但让用户选择时字段查询时却需要显示为中文,其中如何转换?
- 我用xpmenu,为什么其它控件都能有xp风格,但是主菜单没有xp风格?在编辑时,可以看到主菜单有xp风格,但是运行的时候就没有
- 高分求解
然后用 FindComponet() 找到该类, 就下来就很简单了!
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
FreeButton: TButton;
const
NameForm = 'TForm';
begin
i := 2;
TForm.Create(Self).Name := NameForm + IntToStr(i);
with TForm(FindComponent(NameForm + IntToStr(i))) do
begin
ShowModal;
free;
end;
end;
width TForm1.Create do
begin
Showmodual;
free;
end;
with TForm1.Create do
var
FcType : TFormClass;
Frmname:string;
begin
try
Frmname:= as_Fromname;
FcType := TFormClass(FindClass(Frmname));
Application.CreateForm(Fctype,OpenWindow);
OpenWindow.Showmodal;
except
ShowMessage('Form Type not exist,you must register it first');
end;
Result := 0;
end;
需要在pas文件中加
initialization
RegisterClass(窗体类名);
var
OpenWindow :TForm;