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