我正在尝试为Lazarus项目中的TSynEdit
组件添加搜索和替换功能,并且我正在使用TSynEdit.SearchReplace()
、TFindDialog
和TReplaceDialog
。
除了我找不到一种方法来确定是在替换对话框上单击了"替换"还是"全部替换"按钮之外,所有这些似乎都在我需要的时候工作。
我已经为OnFind
事件和OnReplace
事件编写了代码,但似乎没有OnReplaceAll
事件。
在TReplaceDialog项目的自动帮助弹出窗口中,我看不到任何属性或其他内容可以让我确定哪些按钮被按下了。
有人能给我指正确的方向吗?
谢谢,
FM
在OnReplace
事件中,检查frReplaceAll
是否在Options
:中
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;
这个例子来自DelphiXE4文档,但是对话框应该有相同的基本实现细节。