CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

messageDlg的问题!

楼主longlongxre(龙龙)2005-01-03 22:32:06 在 Delphi / VCL组件开发及应用 提问

基本上是拷贝帮助文档中的代码:  
          if   MessageDlg('文档被修改,是否保存?',mtConfirmation,  
                          [mbYes,   mbNo],   0,   mbYes)   =   mrYes   then  
          。。。  
  为什么会报"too   many   actual   parameters"错误啊???  
   
  问题点数:20、回复次数:9Top

1 楼Kevin_Lmx(繁华阅尽)回复于 2005-01-03 22:34:12 得分 0

多了一个参数了。  
  if   MessageDlg('文档被修改,是否保存?',mtConfirmation,  
                          [mbYes,   mbNo],   0)   =   mrYes   thenTop

2 楼Kevin_Lmx(繁华阅尽)回复于 2005-01-03 22:40:11 得分 20

或者uses   QDialogs,然后就可以  
  if   MessageDlg('文档被修改,是否保存?',mtConfirmation,  
                          [mbYes,   mbNo],   0,   mbYes)   =   mrYes   thenTop

3 楼longlongxre(龙龙)回复于 2005-01-03 22:40:35 得分 0

我是照着帮助文档中的示例拷贝下来的呀,怎么会多个参数呢?Top

4 楼longlongxre(龙龙)回复于 2005-01-03 22:41:14 得分 0

哦,原来如此。  
  谢谢。Top

5 楼Kshape(C/C++初学者~~~~)回复于 2005-01-03 22:41:45 得分 0

你用了[mbYes,mbNo],怎么后来还加上mbYes呢?  
  MessageDlg的语法为:  
  MessageDlg   (const   Msg:   string;AType:   TMsgDlgType   AButtons:TMsgDlgButtons;HelpCtx:Longint):Word;  
  Top

6 楼lvqiang(猿人)回复于 2005-01-03 23:16:25 得分 0

唉。。。帮助中有错是常有的事Top

7 楼xncsu(我爱我家)回复于 2005-01-03 23:17:15 得分 0

按照Kevin_Lmx(繁华阅尽)所说的方法,我在implementation后添加uses   QDialogs语句  
    if   messagedlg('你确定要关闭程序吗?',mtconfirmation,[mbyes,mbno],0,mbno)=mryes   then  
          close;  
   
  运行程序,点击yes后,不能关闭程序;  
   
  但是如果去掉uses   QDialogs语句,并改代码  
    if   messagedlg('你确定要关闭程序吗?',mtconfirmation,[mbyes,mbno],0)=mryes   then  
          close;  
  运行程序,点击yes,可以关闭。  
   
  为什么会出现上面这种情况?请高手指点。  
  Top

8 楼Kevin_Lmx(繁华阅尽)回复于 2005-01-03 23:27:34 得分 0

Delphi的帮助中,if   MessageDlg('Welcome   to   my   Delphi   application.     Exit   now?',  
          mtConfirmation,   [mbYes,   mbNo],   0,   mbYes)   =   mrYes   then   ...  
  这段代码有问题。  
  MessageDlg('Welcome   to   my   Delphi   application.     Exit   now?',  
          mtConfirmation,   [mbYes,   mbNo],   0,   mbYes)点YES时返回3,点NO时返回4。而mrYes的值为6,根本不等。  
  所以你要这样写才行:  
  if   messagedlg('你确定要关闭程序吗?',mtconfirmation,[mbyes,mbno],0,mbyes)=3   then  
          close;Top

9 楼xncsu(我爱我家)回复于 2005-01-03 23:47:06 得分 0

明白了,感谢ingTop

相关问题

  • MessageDlg问题
  • messagedlg问题
  • 怎样使用MessageDlg?
  • 新手請教MessageDlg
  • 求助,关于messagedlg()
  • 关于messagedlg的问题
  • 如何使用MessageDlg()函数?
  • 请问MessageDlg怎么用?
  • 关于MessageDlg的问题?
  • 关于MessageDlg的使用??

关键词

  • 文档
  • 代码
  • 修改
  • delphi
  • mbyes
  • mbno
  • mtconfirmation
  • messagedlg
  • mryes then
  • 程序

得分解答快速导航

  • 帖主:longlongxre
  • Kevin_Lmx

相关链接

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

广告也精彩

反馈

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