Firemonkey override "native Scripter" ShowMessage function

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');            
                                    

Use this (no need to call RemoveProperty):

atPascalScripter1.SystemLibrary.DefineMethod('ShowMessage',1,tkNone,nil,__Showmessage,false,0,'Msg: string');