DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: laidabin
今日帖子: 1
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 iamcws (你健康我快乐) ★☆☆☆☆ -
普通会员
2016/6/24 13:59:53
标题:
如何将一个窗体赋给另一个窗体? 浏览:810
加入我的收藏
楼主: 在一个主窗体中不同的条件调用不同的子窗体,我的程序代码如下:
procedure TMainForm.DoForm(strFormNo : string);
begin
  if strFormNo = '001' then
  begin
    with TMasterStationAddrForm.Create(Application) do
    try
      Caption := strFormName;
      ShowModal;
    finally
      free;
    end;
  end
  else if strFormNo = '002' then
  begin
    with TGatewayForm.Create(Application) do
    try
      Caption := strFormName;
      ShowModal;
    finally
      free;
    end;
  end
  else if strFormNo = '003' then
  begin
    with TCheckTimeForm.Create(Application) do
    try
      Caption := strFormName;
      ShowModal;
    finally
      free;
    end;
  end
  ......
end;
由于子窗体比较多,按照我上面的写法代码就比较多。请教各位老师,有没有什么简单的方法?比如根据不同的条件将不同的子窗体赋给一个中间窗体,再ShowModal;如下面的写法:
procedure TMainForm.DoForm(strFormNo : string);
var
  FoundationForm : TForm;
begin
  if strFormNo = '001' then FoundationForm := TMasterStationAddrForm
  else if strFormNo = '002' then FoundationForm := TGatewayForm
  else if strFormNo = '003' then FoundationForm := TCheckTimeForm
  ......
  with FoundationForm.Create(Application) do
  try
    Caption := strFormName;
    ShowModal;
  finally
    free;
  end;
end;
但上面的写法是错误的行不动的,请教各位老师有什么好的方法?谢谢!
----------------------------------------------
不要等到孤独寂寞时才想起朋友,不要等到穷困潦倒时才想起发奋,不要等到疾病缠身时才想起健康。。。
作者:
男 lesuif (Levin) ▲▲▲▲▲ -
普通会员
2016/6/24 15:40:14
1楼: 简单工厂模式
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS