Macros: Implement $Confirm() macro. Issuse #11370

git-svn-id: trunk@40968 -
This commit is contained in:
juha 2013-05-01 08:44:56 +00:00
parent e826391389
commit 58e631025e
2 changed files with 20 additions and 2 deletions

View File

@ -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;

View File

@ -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','',