diff --git a/ide/macropromptdlg.pas b/ide/macropromptdlg.pas index b786e502f8..2de6db0d26 100644 --- a/ide/macropromptdlg.pas +++ b/ide/macropromptdlg.pas @@ -21,7 +21,8 @@ Author: Mattias Gaertner Abstract: - A simple dialog for the $PROMPT() tranfer macro function. + A simple dialog for the $PROMPT() tranfer macro function, + and a MessageDlg for the $CONFIRM() macro. } unit MacroPromptDlg; @@ -56,12 +57,18 @@ type end; +function ShowMacroConfirmDialog(const InitParam: string): TModalResult; function ShowMacroPromptDialog(var InitParam: string): TModalResult; implementation +function ShowMacroConfirmDialog(const InitParam: string): TModalResult; +begin + Result:=MessageDlg(InitParam, mtConfirmation, mbOKCancel, 0); +end; + function ShowMacroPromptDialog(var InitParam: string): TModalResult; var MacroPrompDialog: TMacroPrompDialog; begin @@ -70,7 +77,7 @@ begin try MacroPrompDialog.DataEdit.Text:=InitParam; Result:=MacroPrompDialog.ShowModal; - if Result=mrOk then + if Result=mrOk then InitParam:=MacroPrompDialog.DataEdit.Text; finally MacroPrompDialog.Free; diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp index 160929a135..47e6ee9ea2 100644 --- a/ide/sourceeditor.pp +++ b/ide/sourceeditor.pp @@ -1046,6 +1046,8 @@ type var Abort: boolean): string; function MacroFuncCurToken(const s:string; const Data: PtrInt; var Abort: boolean): string; + function MacroFuncConfirm(const s:string; const Data: PtrInt; + var Abort: boolean): string; function MacroFuncPrompt(const s:string; const Data: PtrInt; var Abort: boolean): string; function MacroFuncSave(const s:string; const Data: PtrInt; @@ -9412,6 +9414,13 @@ begin Result := ''; end; +function TSourceEditorManager.MacroFuncConfirm(const s: string; const Data: PtrInt; + var Abort: boolean): string; +begin + Result:=s; + Abort:=(ShowMacroConfirmDialog(Result)<>mrOk); +end; + function TSourceEditorManager.MacroFuncPrompt(const s: string; const Data: PtrInt; var Abort: boolean): string; begin @@ -9444,6 +9453,8 @@ begin lisWordAtCursorInCurrentEditor,@MacroFuncCurToken,[])); AMacroList.Add(TTransferMacro.Create('EdFile','', lisExpandedFilenameOfCurrentEditor,@MacroFuncEdFile,[])); + AMacroList.Add(TTransferMacro.Create('Confirm','', + lisConfirmation,@MacroFuncConfirm,[tmfInteractive])); AMacroList.Add(TTransferMacro.Create('Prompt','', lisPromptForValue,@MacroFuncPrompt,[tmfInteractive])); AMacroList.Add(TTransferMacro.Create('Save','',