DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sharehb
今日帖子: 28
在线用户: 21
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/24 14:52:19
标题:
请问如何只显示一个窗体在panel中(panel是别的打开的窗口的parent)? 浏览:1121
加入我的收藏
楼主: 在一个程序中每打开一个窗口的parent都是panel,请问如何当打开另一个窗口时前一个打开的窗口自动关闭?
----------------------------------------------
-
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/25 15:03:34
1楼: 有谁知道啊?
----------------------------------------------
-
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/26 19:17:03
2楼: 请问把那个panel进行free 后再重新创建一个不知可不可以
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/2/26 19:39:55
3楼: .....

type
  TForm1 = class(TForm)
  private
    FCurForm: TForm;
    ShowChild(FormClass: TFormClass);
  public
...................

procedure TForm1.ShowChild(FormClass: TFormClass);
begin
  FreeAndNil(FCurForm);

  FCurForm := FormClass.Create(Panel1);
  with FCurForm do
  begin
    Parent := Panel1;
    Align := alClient;
    BorderStyle := bsNone;
    Show;
  end;
end;
...........

就可以了
这样用

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowChild(TForm2); // 注意参数是类名
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowChild(TForm3); // 注意参数是类名
end;

当前子窗体会自动释放的
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/26 19:48:17
4楼: 我试试,谢谢大哥大
----------------------------------------------
-
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/27 12:13:26
5楼: 是可以,但我在一个数据模块中添加的adoquery1的一些事件如afteredit,after...
before..好象不能用,所以我只好对每个窗口打开之前先关闭所有的窗口,一个一个的进行关闭,如:
 frmin.close;
....
 frmout.close;
还好窗口不多,才5,6个,有没有好一点的方法啊???
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/2/27 17:41:58
6楼: 没明白你的意思
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 zcs00102 (ZCS) ★☆☆☆☆ -
盒子活跃会员
2004/2/27 21:48:34
7楼: 就是我在一个数据模块中加入了一个adoquery用来数据连接,然后再在另一个窗口中引用它,我在adoquery中加入了一些事件,如afteredit,afterpost....例如事件内容如下:frmin.dbedit.enabled:=true;......
但在用你上面给的过程showchild(Tfrmin)时,虽然可以关闭所有打开的窗口,但是那些在数据模块中的事件好象不会执行,dbedit.enabled:=true;...没作用。。就是这个意思
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS