Desde hace unas versiones de Delphi, los diálogos ya no se bloquean, como estamos acostumbrados en plataformas Windows, de todas formas, hay una versión sobrecargada de
FMX.Dialogs.MessageDlg que admite un procedimiento como último parámetro que se ejecuta al cerrar el diálogo.
El funcionamiento final no es el mismo que antes, pues el código siguiente al diálogo se ejecuta al mostrar el cuadro, pero el procedimiento te permite recogfer los parámetros de respuesta y realizar la tarea que necesites.
Utilizando este método puedes conseguir lo que necesitas, teniendo en cuenta el nuevo funcionamiento.
Si pruebas un código como este, el orden de los mensajes al salir será el que se ve en la siguiente imagen:
Código Delphi
[-]
FMX.Dialogs.MessageDlg('Transmite Pedidos Entregados?', System.UITypes.TMsgDlgType.mtinformation,
[system.UITypes.TMsgDlgBtn.mbyes,system.UITypes.TMsgDlgBtn.mbno] , 0,
procedure (const AResult: System.UITypes.TModalResult)
begin
case AResult of
mrYES:
ShowMessage('Ha pulsado el YES');
mrNo:
ShowMessage('Ha pulsado el No');
end;
end
);
ShowMessage('Después del diálogo...');
Pero es esta caso, los mensajes saldrán en este orden...