我正在尝试向Lazarus项目中的TSynEdit
组件添加搜索和替换功能,并且我正在使用TSynEdit.SearchReplace()
,TFindDialog
和TReplaceDialog
。
除了我无法确定是否在替换对话框中点击了“替换”或“全部替换”按钮时,所有似乎都按照我的需要工作了。
我已经为OnFind
事件和OnReplace
事件编写了代码,但似乎没有OnReplaceAll
事件。
查看TReplaceDialog项目的自动帮助弹出窗口,我看不到任何可以让我确定按下哪个按钮的属性或其他属性。
有人能指出我正确的方向吗?
谢谢,
FM
答案 0 :(得分:1)
在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;
此示例来自Delphi XE 4 documentation,但对话框应具有相同的基本实现细节。