在我的表单中有取消和确定按钮。他们都做了一些事情,然后称之为接近形式。如何使窗体上的[x]按钮调用Cancelclick?
如果表单是模态显示的,那么您只需要测试ModalResult
的值。mrCancel的值表示叉被点击。
我倾向于安排你的按钮使用他们的ModalResult
属性来关闭表单。设置OK按钮的ModalResult
为mrOK
,取消按钮的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的答案。