如何写一个通用的窗体创建过程?

marf_cn 2006-10-10 01:15:29
在做多窗体项目时总是要遇到创建很多窗体的问题,想写一个通用的过程,只调用一下就可以创建。
说明:不是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.
不知道该怎样写?
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjjrocker 2006-10-10
  • 打赏
  • 举报
回复
zswang(伴水清清)(专家门诊清洁工) 的方法比较常用,我也喜欢这样的用法,特别是有很多子窗体以及需要继承的时候,很好用.
王集鹄 2006-10-10
  • 打赏
  • 举报
回复
procedure MyCreateForm(
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);
OO_is_just_P 2006-10-10
  • 打赏
  • 举报
回复
form1只是个指针,TForm1才是窗口类。
你都可以删除var form1:TForm1;
然后:
With TForm1.Create(Application) do
Try
ShowModal;
finally
free;
end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧