起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 237|回复: 12

【结贴】关于模态对话框的问题**

[复制链接]
发表于 2008-7-15 08:59:50 | 显示全部楼层 |阅读模式
我在一个业务信息中建立了两个窗体,分别将两个窗体定义到业务信息中,在业务信息的InfoCreate和InfoDestroy中将他们创建和释放,我想实现类似向导的功能,窗体1以模态的方式显示,点击窗体1的按钮,就会隐藏窗体1,并模态方式显示窗体2,但显示窗体2后,再点击窗体2的按钮,模态显示窗体1,这时总是抱错'cannot make a visible window modal',请问这是怎么回事?
代码:
业务信息中的定义
private
    {private declarations}
    mobjFormDRZB1:TDRZB1;
    mobjFormDRZB2:TDRZB2;
    mobjFormDRZB3:TDRZB3;
  public
    {public declarations}
    procedure ShowExportDialog();
    property FormDRZB1:TDRZB1 read mobjFormDRZB1;
    property FormDRZB2:TDRZB2 read mobjFormDRZB2;
    property FormDRZB3:TDRZB3 read mobjFormDRZB3;

功能调用窗体1的方法
procedure THSEZBDRXX.ShowExportDialog();
begin
    mobjFormDRZB1.ShowModal;
end;
窗体1调用窗体2
procedure TDRZB1.Button1Click(Sender: TObject);
begin
    Visible:=false;
    THSEZBDRXX(InfoBroker.Info).FormDRZB2.ShowModal;
end;
窗体2调用窗体1
procedure TDRZB2.Button3Click(Sender: TObject);
begin
   Visible:=false;
    THSEZBDRXX(InfoBroker.Info).FormDRZB1.ShowModal;
end;
回复

使用道具 举报

 楼主| 发表于 2008-7-15 09:02:57 | 显示全部楼层

补充

抱错总是出现在“窗体2调用窗体1”时
procedure TDRZB2.Button3Click(Sender: TObject);
begin
   Visible:=false;
    THSEZBDRXX(InfoBroker.Info).FormDRZB1.ShowModal;  //运行到这里,就会抱错
end;
回复 支持 反对

使用道具 举报

发表于 2008-7-15 09:04:36 | 显示全部楼层
模式化的窗体不能设置visible。做向导一般是在一个窗体上放置几层控件,控制控件的隐藏显示
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-15 09:09:39 | 显示全部楼层

那showmodal对应的方法有什么吗?

比如我在vb中用相同的例子,只要调用me.hide,然后调用FormDRZB1.show(1)就可以了,但在x3平台下,无论那是调用visible:=false还是hide或close都没有用,而且我关闭了窗体2,窗体1还是显示的,这时什么机制呢?
回复 支持 反对

使用道具 举报

发表于 2008-7-15 09:15:19 | 显示全部楼层
非模式化窗体才能控制 hide show,这个跟平台没关系,是win32api决定的。
你把窗体用show调用起来,就可以随便控制了。如果是模式化的,只能在显示出来的窗体上调用close关闭本窗体。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-15 09:18:38 | 显示全部楼层

那vb怎么可以,vb不也是用的win32api

我就是在显示出来的窗体中调用close关闭窗体的
回复 支持 反对

使用道具 举报

发表于 2008-7-15 09:28:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-15 09:32:51 | 显示全部楼层

你给我一堆网址干什么?

我已经测试过了,show是可以的,但我要的是showmodal,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-15 09:34:29 | 显示全部楼层

回复

就算我在showmodal前加了visible:=false也是不行的,这说明并没有消除模态
回复 支持 反对

使用道具 举报

发表于 2008-7-15 09:39:01 | 显示全部楼层
楼主看看那些网址。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 15:30 , Processed in 0.044520 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表