Ver Mensaje Individual
  #2  
Antiguo 01-06-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.292
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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:
            ////codigo 1
            ShowMessage('Ha pulsado el YES');
          mrNo:
            ///codigo 2
            ShowMessage('Ha pulsado el No');
       end;
     end
    );

    ShowMessage('Después del diálogo...');

Pero es esta caso, los mensajes saldrán en este orden...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita