明白delphi的来看看

update什么意思?if form1.showmodal:=mrok then这句话什么意思?
2025-02-25 11:17:23
推荐回答(3个)
回答1:

这个问题说来话长,且听我慢慢道来。。。

首先,你仔细看一看,所有的命令按钮(不论是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 (等号左边没有冒号)

不知这样的回答是否满意? 呵呵。。。

回答2:

update 一般用于对数据表进行更新;
showmodal属性,窗体显示后,别的窗体无法获得焦点,必须手动关闭;

回答3:

SHOWMODAL是模式显示窗体

procedure TMyDialogBox.OKButtonClick(Sender: TObject);

begin
ModalResult := mrOK;
end;

procedure TMyDialogBox.CancelButtonClick(Sender: TObject);
begin
ModalResult := mrCancel;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin
if MyDialogBox1.ShowModal = mrOK then
Beep;

end;

看不懂问我。