CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

如何关闭ShowModal的窗口

楼主zgj2004()2005-04-02 12:15:19 在 Delphi / 语言基础/算法/系统设计 提问

有Form1和Form2两个窗口,Form1中有一个Button1。其中的事件有:  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      Form2   :=   TForm2.Create(Application);  
      Form2.ShowModal;  
      ....;//继续下面的代码  
  end;  
   
  Form2的OnShow事件为:  
  procedure   TForm2.FormShow(Sender:   TObject);  
  begin  
      ...;  
      if   某条件不成立   then  
      begin  
            关闭Form2;   //即不再显示Form2  
            exit;    
      end;  
      ...;//下面还有代码  
  end;  
   
  我试了很多方法,都无法实现上面的效果。请问如何修改Form2的OnShow事件才能不再显示Form2?  
  或者有没有其他好的方法?  
   
  问题点数:30、回复次数:10Top

1 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-04-02 12:20:55 得分 5

把判断放到form1里...Top

2 楼yxlab()回复于 2005-04-02 12:21:07 得分 1

调用CLOSE方法  
  Top

3 楼qcwx828()回复于 2005-04-02 12:21:37 得分 1

ModalResult属性应该可以用Top

4 楼zhou151420448(我是新手)回复于 2005-04-02 12:22:27 得分 1

if   某条件不成立   then  
      begin  
            form2.close;   //即不再显示Form2  
      end;  
      ...;//下面还有代码Top

5 楼zgj2004()回复于 2005-04-02 12:29:09 得分 0

to   heluqing(鉴之小河**<挣大钱、娶美女>)   :  
      if   某条件不成立   then  
      begin  
            form2.close;   //即不再显示Form2  
      end;  
      ...;//下面还有代码  
   
  上述条件只能在Form2中出现,所以不能移到Form1中判断!还有其他好方法吗?Top

6 楼zgj2004()回复于 2005-04-02 12:32:49 得分 0

to     qcwx828()   :  
      ModalResult属性如何正确使用?我在OnShow事件给它赋值了,解决不了问题。  
   
  to   all:  
      if   某条件不成立   then  
      begin  
            form2.close;   //即不再显示Form2  
      end;  
      ...;//下面还有代码  
   
  直接Close是不行,Form2还是会显示出来的。你们可以试试!Top

7 楼vfork(學習htm、css、js、java,然後到ajax。)回复于 2005-04-02 13:52:12 得分 15

哈哈.用  
  在button的onclick事件里添加:  
  PostMessage(Handle,WM_Close,0,0);Top

8 楼NoDelphibbs(乌鸦)回复于 2005-04-02 14:46:18 得分 1

请查阅form的事件顺序。Top

9 楼Tensionli()回复于 2005-04-02 14:50:09 得分 1

在FORM1的事件中写  
  if   form2.modalresult   =   mrok   then  
  ...........Top

10 楼shove(shove)回复于 2005-04-02 15:13:31 得分 5

Show   事件里面   Close;     不能关闭窗口。  
  Active   事件可以。  
   
  可以这样做:  
  1、定义窗体变量   isShow:   Boolean;  
  2、Create   事件里面   isShow   :=   True;  
  3、Show   事件里面    
        if   某条件不成立   then  
        begin  
            isShow   :=   False;  
            //form2.close;   //即不再显示Form2  
        end;  
        ...;//下面还有代码  
  4、Active   事件里面   if   not   isShow   then   Close;Top

相关问题

  • 如何关闭窗口??
  • 如何关闭窗口
  • 如何关闭窗口?
  • 如何关闭Explore.exe窗口!
  • 如何关闭窗口?
  • 如何关闭主窗口!
  • 如何关闭窗口
  • 窗口如何关闭
  • 如何关闭子窗口?
  • 如何关闭窗口?

关键词

  • 代码
  • form2
  • isshow
  • 事件
  • onshow
  • 关闭
  • 显示
  • 下面还有代码
  • tform
  • close

得分解答快速导航

  • 帖主:zgj2004
  • heluqing
  • yxlab
  • qcwx828
  • zhou151420448
  • vfork
  • NoDelphibbs
  • Tensionli
  • shove

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo