找出用户点击了哪个按钮关闭了 Twwsearchdialog

Find out which button user clicked to close Twwsearchdialog

我正在构建一个使用 Infopowers 和 1stClass 控件的项目。 现在,在我的一种形式中,我使用 TwwSearchDialog 来让用户找到特定的记录。但是,我想知道用户使用哪个按钮关闭了对话框。 那是因为如果他单击 'Cancel' 按钮,我需要触发与他单击 'OK' 按钮不同的代码。

TwwSearchDialog 控件有一个 "OnCloseDialog" 事件,其中发送者是 TwwLookUpDlg,没有任何 'Canceled' 布尔参数。 (与 TwwSearchDialog 本身的情况相同)。这样你就无法询问对话框是否被取消了。

我试图通过查询 'OnCloseDialog' 事件中的 'Execute' 参数来绕过,即使是布尔值,也不会 return 什么都没有。

procedure MyForm.wwSearchDialog1CloseDialog(Dialog:TwwLookupDlg);
begin
   if not wwSearchDialog1.Execute then
      begin
         bla bla bla bla
      end;
end;

相反,它会导致无法关闭对话框(使用取消或确定),除非您暴力终止项目,否则会产生严重缺陷。

能否请您提供一种方法来检查用户使用哪个按钮关闭了对话框?

TwwSearchDialog 的 OnCloseDialog 事件的 'Dialog' 参数有一个名为:'ModalResult' 的属性。 现在,如果通过按 'Cancel' 按钮关闭 SearchDialog,则 Dialog.ModalResult = mrCancel。 如果通过按 'OK' 按钮关闭 SearchDialog,则 Dialog.ModalResult = mrOK.

所以在 'OnCloseDialog' 事件中我可以查询 Dialog.ModalResult 是否等于 mrOk 或 mrCancel 并相应地添加正确的代码。