if form1.showmodal:=mrok then

这句话什么意思?

最佳答案

这个问题说来话长,且听我慢慢道来。。。 首先,你仔细看一看,所有的命令按钮(不论是Button还是BitBtn)都有一个属性:ModalResult,该属性可以设置为mrOk 、mrCancel...等等,默认值是mrNone。 平时,ModalResult属性没什么用处,但如果命令按钮放置到用showmodal显示(模态显示,一般用于显示对话框)的窗体上时,就大大的有用了。 作用体现在: 1、当设置命令按钮的ModalResult属性为mrOk、mrCancel...等时,程序运行后,单击该按钮,按钮所在的窗体会自动关闭,不用在OnClick事件中添加诸如Close;语句。 2、当设置命令按钮的ModalResult属性为mrOk、mrCancel...等时,程序运行后,单击该按钮,按钮所在的窗体会自动关闭,同时将按钮的ModalResult属性值赋值给窗体的ModalResult属性(注意:任何窗体都有这个属性!) 3、自动关闭上述窗体时,窗体的ModalResult属性又会自动传递给showmodal方法,作为该方法的返回值。 所以说,showmodal方法的返回值总是与命令按钮的ModalResult属性相同。 楼主的代码: if form1.showmodal=mrok then 如果要通俗化一下,可以写成如下等价的代码: var r:TModalResult; ...... ....... r:=form1.showmodal; if r=mrOK then ... ... 很明显,根据showmodal方法的返回值,可以判断用户在对话框中,究竟是点击了OK按钮还是Cancel按钮,从而决定下一步的程序逻辑。 最后,更正一下楼主的语法错误:showmodal:=mrok 应该写成 showmodal=mrok (等号左边没有冒号) 不知这样的回答是否满意? 呵呵。。。

////////////////////////////////////////////////////////////////////////////////

好几个按钮 都设置ModalResult:=mrOk;

然后怎样判断是哪个按钮的事件呢?
if vForm.ShowModal=mrOK then
begin
这边怎么判断是哪个按钮?
end;

方法很多,可以在vForm中定义一个公共变量

var K:Integer;

procedure vForm.Button1Click(Sender: TObject);
begin
 K:=1;
 ModalResult:=mrOk;
end;

procedure vForm.Button2Click(Sender: TObject);
begin
 K:=2;
 ModalResult:=mrOk;
end;

if vForm.ShowModal=mrOK then
begin
  if vForm.K=1 then
     showmessage('是Button1')
  else if vForm.K=2 then
     showmessage('是Button2')
  ...
end;

if form1.showmodal:=mrok then 什么意思的更多相关文章

  1. ShowModal在FireMonkey移动应用程序对话框

    This is the only code that changes between the first and second code snippets: dlg.ShowModal(procedu ...

  2. delphi控件属性大全-详解-简介

    http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...

  3. 调用Dll里面的窗体

    将窗体资源分装到DLL中并且调用 用Delphi生成DLL并封装窗体的示例 调用Dll里面的窗体 DLL文件 library Project2;{ Important note about DLL m ...

  4. TForm类

    显示给用户的窗体有两种:有模式和无模式的.具体使用哪一种窗体,取决于是否希望用户能够同时与这个窗体和其他窗体交互. 1.当打开一个模式窗体后,用户无法与应用程序的其他部分交互,知道用户关闭了这个窗体. ...

  5. Delphi窗体之间互相调用的简单问题

    问题是这样的,我的程序主窗口Form1上面有一个数据连接(ADOCONNECTION1)和ADOQUERY,然后还有一些数据感知组件用于浏览用的,我打算点击From1中的一个“修改数据”按钮,就弹出F ...

  6. Delphi中根据分类数据生成树形结构的最优方法

    一. 引言:    TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能 ...

  7. 登录窗口不是系统主窗口 但又需要最先显示 用delphi怎么编写代

    主窗体FormShow事件(主窗体为Form1为例,Form2为登陆窗体)   procedure TForm1.FormShow(Sender: TObject); begin if Form2.S ...

  8. Delphi 模式窗体返回值ModalResult的使用方法及注意事项(转)

    1.基础知识简介: ModalResult是指一个模式窗体(form.showmodal)的返回值,一般用于相应窗体上按钮的ModalResult属性: 显示完窗体(关闭)后,会返回此属性预设的值做为 ...

  9. 如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form

    如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form本文地址 :CodeGo.net/5175478/ ----------------------- ...

随机推荐

  1. 【转】怎样创建一个Xcode插件(Part 2)

    原文:How To Create an Xcode Plugin: Part 2/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候 ...

  2. iOS中判断消息推送是否打开

    根据 [[UIApplication sharedApplication] enabledRemoteNotificationTypes] 的返回值来进行判断,该返回值是一个枚举值,如下: typed ...

  3. ubuntu1404下Apache2.4错误日志error.log路径位置

    首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...

  4. Eclipse开发android安装环境

    好久没有用Eclipse开发android了,今天安装了一下,发现之前的andorid的sdk不能用了,然后去官网下载了一个最新的SDK,由于现在的android的官网需要FQ才能访问到,所以在这里我 ...

  5. Python转码问题

    在Python中,可以对String调用decode和encode方法来实现转码.   比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作 s.decode('gbk').e ...

  6. php 删除语句

    if($query&&mysql_affected_rows())echo('数据已被删除');else echo('错误,无法删除'); 通过返回影响的行数 来判断是否已经删除

  7. Python尾递归-求斐波那契数列

    # coding=utf-8 # Fibonacci.py Fib = {} def Fibonacci(n): global Fib if Fib.has_key(n): return Fib[n] ...

  8. 2016030203 - 首次将内容推送到github中

    参考网址:http://www.cnblogs.com/plinx/archive/2013/04/08/3009159.html 和当你在你的github上创建repository后的提示信息如下 ...

  9. [译]36 Days of Web Testing(三)

    Day 14: Automate the tedious Why ? 有些时候,web测试还是蛮单调乏味的,在开始测试前,你可能要必须跳转到一个特定的表单页面,或则为了得到一个特定的页面(或配置),你 ...

  10. [BZOJ 3942] [Usaco2015 Feb] Censoring 【KMP】

    题目链接:BZOJ - 3942 题目分析 我们发现,删掉一段 T 之后,被删除的部分前面的一段可能和后面的一段连接起来出现新的 T . 所以我们删掉一段 T 之后应该接着被删除的位置之前的继续向后匹 ...