如何从边框图标中检测出近距离的形式?

时间:2011-07-20 11:53:13

标签: delphi delphi-2010

我的表单中有取消和确定按钮。他们都做了一些事情,然后打电话给他们。如何在表单上设置[x]按钮来调用Cancelclick?

3 个答案:

答案 0 :(得分:9)

如果表单以模态显示,那么您只需要测试ModalResult的值。值mrCancel表示单击了十字架。

我倾向于安排您的按钮使用其ModalResult属性来关闭表单。将“确定”按钮的ModalResult设置为mrOK,将取消按钮设置为mrCancel

答案 1 :(得分:5)

将此添加到表单的公开声明

procedure WMSysCommand(var MSG: TWMSysCommand); message WM_SYSCOMMAND;

然后添加方法

procedure TForm1.WMSYSCommand(var MSG:  TWMSysCommand);
begin
  if MSG.CmdType = SC_CLOSE then
  begin
     //Closing from border icon
  end;
  inherited;
end;

答案 2 :(得分:0)

您可以使用表单的OnCloseQuery事件。

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:= true;  //or not
  ButtonCancelClick(Self);
end;

如果您的按钮设置了modalresult属性,他们也会调用OnCloseQuery,此代码将无效。在那种情况下使用大卫的答案。