messageDlg的问题!
基本上是拷贝帮助文档中的代码:
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




