在做多窗体项目时总是要遇到创建很多窗体的问题,想写一个通用的过程,只调用一下就可以创建。
说明:不是MDI程序,每个创建的窗体不同,就是预先设计好的。
我这样写的
procedure TMain.MyCreateForm(frm: TForm);
begin
if not assigned(frm) then
begin
Application.CreateForm(TForm,frm);
try
frm.ShowModal;
finally
frm.Free;
frm:=nil;
end;
end else
frm.ShowModal;
end;
//调用时:
Form1:TForm1;
MyCreateForm(Form1);
可这样Form1实际上从TForm创建的,不是我已经设计好的form1.
不知道该怎样写?
说明:不是MDI程序,每个创建的窗体不同,就是预先设计好的。
我这样写的
procedure TMain.MyCreateForm(frm: TForm);
begin
if not assigned(frm) then
begin
Application.CreateForm(TForm,frm);
try
frm.ShowModal;
finally
frm.Free;
frm:=nil;
end;
end else
frm.ShowModal;
end;
//调用时:
Form1:TForm1;
MyCreateForm(Form1);
可这样Form1实际上从TForm创建的,不是我已经设计好的form1.
不知道该怎样写?
解决方案 »
- 获取鼠标选择DBGrid一行的数据
- 解析HTML格式用什么组件好。请大家推荐一下, 没分了。
- 兄弟们救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!
- 如何设置dbgrid的一些属性,例如保存,打印,粘贴,剪贴,复制。
- 请教一下各位大虾,哪里有QuickRpt.pas的源代码啊?
- 三个问题
- !!!善分!预祝我妈妈明天手术成功!!!
- 如何使窗体始终处在最底层?
- 怎样设定fsMDIForm的缺省子窗体或背景?
- 怎么把listbox导到word
- 请问2006是怎样开发的?
- 自认为较难的问题,看看多少时间可以解决,大家帮忙
你都可以删除var form1:TForm1;
然后:
With TForm1.Create(Application) do
Try
ShowModal;
finally
free;
end;
InstanceClass: TComponentClass;
frm: TForm);
begin
if not assigned(frm) then
begin
Application.CreateForm(InstanceClass, frm);
try
frm.ShowModal;
finally
frm.Free;
frm:=nil;
end;
end else frm.ShowModal;
end;MyCreateForm(TForm1, Form1);