CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于Form的ShowModal问题!

楼主chinaelev(中国风)2005-11-04 09:33:56 在 Delphi / VCL组件开发及应用 提问

问题很奇怪啊,我用的是D7。  
   
  Form1中代码:  
  procedure   TForm1.ButtonOKClick(Sender:   TObject);  
  begin  
      ButtonOK.ModalResult   :=   mrOK;  
  end;  
   
  Form2中代码:  
  //  
  Form1:=TForm1.Create(Application);  
  with   Form1   do  
  try  
      if   Form1.ShowModal   =   mrOK   then  
      begin  
          //问题在这里,为什么每次要点击2次ButtonOK才能响应到这里。  
          //而不在ButtonOKClick事件中赋值mrOK,直接在ButtonOK的属性中选中mrOK,就可以响应。  
      end;  
  finally  
      free();  
  end;  
  //  
   
  问题点数:50、回复次数:9Top

1 楼xxmmmx(踢踏)回复于 2005-11-04 09:39:49 得分 0

第一次点击时ButtonOk的ModalResult并不是mrOk,所以窗体没有关闭,点击后,才是mrOk;  
  第二次点击时,ModalResult已经为mrOk,所以关闭窗体。  
  Top

2 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-11-04 09:44:00 得分 0

:)   俺是来学习的.Top

3 楼chinaelev(中国风)回复于 2005-11-04 09:44:11 得分 0

那请怎么写才能点击一次就响应到哪里呢,Top

4 楼xxmmmx(踢踏)回复于 2005-11-04 09:46:36 得分 0

直接在ButtonOK的属性中选中mrOK,不就可以解决问题了吗Top

5 楼xxmmmx(踢踏)回复于 2005-11-04 09:47:59 得分 45

或者直接写  
  ModalResult   :=   mrOK;Top

6 楼Hotthing(豪星)回复于 2005-11-04 09:48:22 得分 0

我用你的程序做了,   很好,   一切正常!Top

7 楼Hotthing(豪星)回复于 2005-11-04 09:49:14 得分 5

有没有去掉这一行?  
   
  begin  
      Application.Initialize;  
      //Application.CreateForm(TForm1,   Form1);  
      Application.CreateForm(TForm2,   Form2);  
      Application.Run;  
  end.  
  Top

8 楼Hotthing(豪星)回复于 2005-11-04 09:51:03 得分 0

是不是应该把这个变量定义放在   FORM2中:  
   
  var   Form1:   TForm1;  
   
  Top

9 楼huanyi(残荷淡月)回复于 2005-11-04 10:03:04 得分 0

procedure   TForm1.ButtonOKClick(Sender:   TObject);  
  begin  
      ButtonOK.ModalResult   :=   mrOK;  
  end;  
   
  这一句只是设置ButtonOK的属性,   再点一次由于这个属性设置了,所以会关闭窗体  
   
  正确地写法应该是:  
  procedure   TForm1.ButtonOKClick(Sender:   TObject);  
  begin  
      Form1.ModalResult   :=   mrOK;  
  end;  
  Top

相关问题

  • Form->ShowModal()出錯,請幫忙。
  • ShowModal()?
  • Form的StayOnTop在ShowModal中為何不行.
  • VB中如何实现Form的ShowModal方法?
  • 如何在运行时判断form是showModal出来的
  • 怎么判断一个form是否已经Create?已经Show?已经ShowModal?
  • form的show事件,在执行过showmodal之后还会不会执行?
  • 定时检查多个任务,showmodal一个form进行提示,程序就不执行了??????????
  • ModalResult, ShowModal example
  • 关于showmodal一问

关键词

  • 属性
  • application
  • mrok
  • buttonok
  • modalresult
  • buttonokclick
  • 窗体
  • tform
  • 响应
  • 点击

得分解答快速导航

  • 帖主:chinaelev
  • xxmmmx
  • Hotthing

相关链接

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

广告也精彩

反馈

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