Page 1 of 1

La ventana queda 'atrás'

Posted: Mon Jan 23, 2006 12:25 pm
by jlcapel
Antonio,

En este código (ejemplo autocontenido)

Code: Select all

// FiveWin for Pocket PC - Using DialogBoxes

#include "FWCE.ch"

//----------------------------------------------------------------------------//

function Main()

   local oWnd, oBrush

   local oBtn1

   // -------------> Preguntamos número de vendedor y password
   IF !Entrada()
      MSgInfo("Dentro del IF")
      RETURN .F.
   ENDIF

   MSgInfo("Después del if")

   DEFINE WINDOW oWnd TITLE "GlobalPda"

   //oBrush := tBrush():New( NIL,, cBmpFile, cBmpRes )




   @ 001, 001 BUTTON oBtn1 PROMPT "Rutas" OF oWnd ;
              ACTION MsgInfo("Hola")  ;
              SIZE 100, 20 ;
              PIXEL


   @ 120, 001 BUTTON oBtn1 PROMPT "Rutas" OF oWnd ;
              ACTION MsgInfo("Hola")  ;
              SIZE 100, 20 ;
              PIXEL


   ACTIVATE WINDOW oWnd


return nil

//----------------------------------------------------------------------------//




FUNCTION Entrada()

         LOCAL oWnd
         LOCAL aVendedores := {"001 - Vendedor 1","002 - Vendedor 2" }
         LOCAL oVendedores
         LOCAL cVendedor := aVendedores[1]
         LOCAL oBtn1


         DEFINE WINDOW oWnd TITLE "Entrada"


         @ 20, 20 SAY "Vendedor" PIXEL
         @ 60, 60 COMBOBOX cVendedor ITEMS aVendedores OF oWnd ;
                  SIZE 20,250 PIXEL


   @ 120, 001 BUTTON oBtn1 PROMPT "Salir" OF oWnd ;
              ACTION oWnd:End()  ;
              SIZE 100, 20 ;
              PIXEL


         ACTIVATE WINDOW oWnd

RETURN .T.

Al volver de la llamada a la función Entrada, la aplicación se queda 'atrás' y me aparece la ventana que había antes de llamar a la aplicación.

¿Como puedo forzar a mostrar la ventana con título "GlobalPda" ???

Saludos y gracias,
Jose Luis Capel

Posted: Mon Jan 23, 2006 1:03 pm
by Antonio Linares
Jose Luis,

la primera ventana que se crea ha de ser la ventana principal. Cambia así tu código:

Code: Select all

   DEFINE WINDOW oWnd TITLE "GlobalPda" 

   IF ! Entrada() 
      RETURN .F. 
   ENDIF 

   ...

Posted: Mon Jan 23, 2006 3:36 pm
by jlcapel
Antonio,

He probado tu sugerencia y no he conseguido el resultado esperado. ¿Tienes algún ejemplo donde pueda probar lo que me indicas?

¿Vas a implementar los diálogos por software?

Saludos,
José Luis Capel

Posted: Mon Jan 23, 2006 4:00 pm
by jlcapel
Antonio,

Funciona!!

Parece ser que había un problema en la generación del ejecutable buildce informa de que se ha generado el exe correctamente, cuando no ha sido así.

Posted: Mon Jan 23, 2006 6:04 pm
by Antonio Linares
Jose Luis,

Me alegro de que esté solucionado :)

Posted: Sun Feb 12, 2006 8:29 pm
by astursoft
Una pregunta mal intencionada :
Si cuando tienes la ventana de entrada de usuario , por un casual , tienes que consultar en la agenda , moverte por el explorador , llamar por telefono ...
y luego quieres volver a la aplicación , ¿ como lo haces ?

Posted: Mon Feb 13, 2006 12:09 am
by Antonio Linares
Jose Luis,

Desde aqui:
Image

Posted: Mon Feb 13, 2006 6:21 am
by astursoft
el problema surge cuando son ventanas encadenadas , menu->browsecliente->ficha cliente->sus pedidos , en el task existe una entrada por cada ventana .
Vale recupero a delante sus pedidos ( cosa que para un viajante "usuario" ya es un logro) , pero eso no me garantiza que cuando cierre esta ventana , me quede detras "ficha cliente" con lo que vuelta a empezar ( no pidas mas de dos veces a un viajante que vaya al task , y menos que lo recupere en el orden correcto ).
Que otra solucion ( a parte de los dialogos ) tenemos ?

Posted: Mon Feb 13, 2006 7:07 am
by Antonio Linares
Jose Luis,

De momento la única solución es como dices, los diálogos. Has comprobado si salen en esa ventana ó no se ven ?

Posted: Mon Feb 13, 2006 9:29 am
by astursoft
Este es el motivo de cambiar todo a dialogos ( ya tenia la aplicacion terminada) . En el task solo sale la ventana pantalla inicial .
Yo recupero el programa volviendo a lanzar el programa ( eso es facil de pedir al usuario ) , usando la funcion que existe en el foro StillRun() .
Saludso.