Lazarus-TReplaceDialog-如何确定';更换';或';更换所有';点击

Lazarus-TReplaceDialog-如何确定';更换';或';更换所有';点击,replace,dialog,lazarus,Replace,Dialog,Lazarus,我正在尝试向Lazarus项目中的TSynEdit组件添加搜索和替换功能,并且我正在使用TSynEdit.SearchReplace()、TFindDialog和TReplaceDialog 所有这些似乎都在按照我的需要工作,只是我找不到一种方法来确定是在“替换”对话框上单击了“替换”还是“全部替换”按钮 我已经为OnFind事件和OnReplace事件编写了代码,但似乎没有OnReplaceAll事件 查看TReplaceDialog项的自动帮助弹出窗口,我看不到任何属性或其他属性,这些属性或

我正在尝试向Lazarus项目中的
TSynEdit
组件添加搜索和替换功能,并且我正在使用
TSynEdit.SearchReplace()
TFindDialog
TReplaceDialog

所有这些似乎都在按照我的需要工作,只是我找不到一种方法来确定是在“替换”对话框上单击了“替换”还是“全部替换”按钮

我已经为
OnFind
事件和
OnReplace
事件编写了代码,但似乎没有
OnReplaceAll
事件

查看TReplaceDialog项的自动帮助弹出窗口,我看不到任何属性或其他属性,这些属性或属性允许我确定按下了哪些按钮

谁能给我指出正确的方向吗

谢谢


FM

OnReplace
事件中,检查
freplaceall
是否在
选项中:

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
begin
  with Sender as TReplaceDialog do
  begin
  if frReplace in Options then
    DoReplace(ReplaceDialog1.FindText, ReplaceDialog1.ReplaceText)
  else if frReplaceAll in Options then
    DoReplaceAll(ReplaceDialog1.FindText, ReplaceDialog1.ReplaceText);
  end;
end;

此示例来自,但对话框应具有相同的基本实现细节。

这使我走上了正确的轨道!谢谢@Ken。我实际上简化了一点,使用了
将发送者作为树放置对话框,如果frReplace在选项中,则执行Include(选项forreplace,ssoReplace),否则如果frReplaceAll在选项中,则执行Include(选项forreplace,ssoreplacell)工作正常。