Hello,
On FMX (Firemonkey) application to be executed on IOS, MACOS etc. I would like to override your script function ShowMessage, because it's do a :
TDialogServiceASync.ShowMessage
But I want to do a
TDialogService.ShowMessage
I want my old script to work like on Win32.
Because I can set
TDialogService.PreferredMode:=TDialogService.TPreferredMode.Sync;
To display a ASync or Sync message dialog.
But I don't succeed with this code :
procedure TForm54.__Showmessage(AMachine: TatVirtualMachine);
begin
// TDialogServiceSync.ShowMessage(VarToStr(AMachine.GetInputArg(0)));
TDialogService.ShowMessage(VarToStr(AMachine.GetInputArg(0)));
end;
procedure TForm54.FormCreate(Sender: TObject);
begin
FEstInitialise:=false;
end;
procedure TForm54.InitialserScript;
begin
atPascalScripter.AddObject('self',self);
// I want to override showmessage
atPascalScripter.RemoveProperty('ShowMessage');
atPascalScripter.DefineMethod('ShowMessage',1,tkNone,nil,__Showmessage,false,0,'Msg: string');
end;
procedure TForm54.Button1Click(Sender: TObject);
begin
// https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.DialogService.TDialogService.ShowMessage
// TDialogService.PreferredMode:=TDialogService.TPreferredMode.Sync;
// FMX.DialogService.TDialogService.PreferredMode:=TDialogService.TPreferredMode.Sync;
if not FEstInitialise then
begin
FEstInitialise:=true;
InitialserScript;
end;
atPascalScripter.SourceCode.Assign(ScrMemo1.Lines);
atPascalScripter.Execute;
end;
Script is a simple :
ShowMessage('Showmessage 1');
ShowMessage('Showmessage 2');