0

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

一切似乎都在按我的需要工作,除了我找不到确定是否在替换对话框上单击了“替换”或“全部替换”按钮的方法。

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

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

谁能指出我正确的方向?

谢谢,

调频

4

1 回答 1

1

在这种情况OnReplace下,检查是否frReplaceAllOptions

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;

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

于 2013-07-26T15:16:20.363 回答