我如何从边界图标检测接近形式



在我的表单中有取消和确定按钮。他们都做了一些事情,然后称之为接近形式。如何使窗体上的[x]按钮调用Cancelclick?

如果表单是模态显示的,那么您只需要测试ModalResult的值。mrCancel的值表示叉被点击。

我倾向于安排你的按钮使用他们的ModalResult属性来关闭表单。设置OK按钮的ModalResultmrOK,取消按钮的mrCancel

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

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;

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

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

如果您的按钮设置了modalresult属性,它们也将调用OnCloseQuery,这段代码将不起作用。在这种情况下,请使用David的答案。

最新更新