Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Caja de Dialogos (https://www.clubdelphi.com/foros/showthread.php?t=95216)

pruz 01-06-2021 05:31:31

Caja de Dialogos
 
Hola:

Estoy programando delphi tokio, pero las cajas de dialogos para android No me funcionan y da el siguiente error "Caja de dialogo no implementada para esta plataforma".

Este es el codigo que uso.

Código Delphi [-]
  if Fmx.Dialogs.MessageDlg('Transmite Pedidos Entregados?', System.UITypes.TMsgDlgType.mtinformation,
     [system.UITypes.TMsgDlgBtn.mbyes,system.UITypes.TMsgDlgBtn.mbno] , 0) = mrYes 
  then begin

      ////codigo
 end else begin
    ///codigo
 end;


Gracias,

Neftali [Germán.Estévez] 01-06-2021 09:30:00

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...

pruz 01-06-2021 16:33:02

Gracias, Neftali por la respusta
la probare hoy y les cuento..
Saludos

pruz 01-06-2021 22:52:18

Muchas gracias, funcion perfecto


La franja horaria es GMT +2. Ahora son las 11:36:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi