我的表单中有取消和确定按钮。他们都做了一些事情,然后打电话给他们。如何在表单上设置[x]按钮来调用Cancelclick?
答案 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
,此代码将无效。在那种情况下使用大卫的答案。