Fecha actual Mar Jul 01, 2025 6:09 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 8 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Jul 05, 2007 5:08 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Hola:

Hace tiempo que no posteo nada por aca, espero que esten todos bien!

Bueno la duda es la siguiente, y confieso que no pense mucho en la respuesta, pero en principio me parece que no es posible, lo posteo para ver si alguien me puede dar una alternativa...

Es lo siguiente... supongamos que tengo un method que executa un monton de operaciones, pero por alla en el medio y si se cumplen determinadas condiciones, debe presentar una listbox con determinados itens de los cuales elegir uno para continuar la ejecucion del metodo.

Bueno el problema esta ahi, aun no lo hice pero pensando un poco, si yo llamo al formulario X desde el metodo X, el metodo continuara ejecutandose sin esperar la respuesta del usuario, es mas probablemente presente el formulario una vez que el metodo termino de ejecutarse...

Entonces como resuelvo este problemita??? Alguien me da una luz por ahi?

Saludos a todos.
Pablo Pagues


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Jul 05, 2007 6:06 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Pablo,

A ver si lo he entendido, imaginamos un formulario con listbox, que inicialmente está oculto y un botón, al pulsar el botón llamamos a un método, éste empieza a ejecutarse y como se cumplen algunas cosas debemos volver al formulario, mostrar el listbox y luego continuar, si es esto, yo lo haría de la siguiente forma:

- el listbox está oculto.
- al entrar en el método, empiezan las instrucciones y si se cumple ese caso especial pongo el listbox visible y retorno del método.
- el usuario está de nuevo en el formulario, interactúa con el listbox y vuelve a lanzar el mismo método, pero en este caso, al principio del propio método comprueba si el listbox es visible y si lo es, salto todo el código que ya ejecuté antes y sigo hasta el final:

Código:
method Boton1Click() class MyForm

   if !::ListBox:Visible
      // Empieza la ejecución del método...
      x += 1
      ...
      // Si se cumple la condición mostramos el listbox y salimos.
      if DeboPreguntar == .T.
         ::ListBox1:Visible := .T.
         return
      endif
   endif

   // Sigue el código...
   x += 1
   ...

return

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Jul 05, 2007 9:31 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Bueno muchas gracias por las respuestas... vere lo que hago...

Si, en mi caso lo ideal seria que al llamar al formulario el metodo parara hasta que este generara una respuesta, pero eso no sucede y es logico que no suceda, en ningun otro lenguaje sucede. En VB se pude usar el inputbox y este si para la ejecucion, pero el inputbox es inadecuado en este caso... es como el MessageDlgEdit que aunque no lo he usado debe funcionar del mismo modo.

Bueno voy a intentar una alternativa de estas que me han colocado aqui, en cualquiera de los casos al llamar al formulario con la listbox al volver debo lanzar nuevamente el metodo.

Otra cosa, analisando el codigo de Rodrigo, no daria el efecto que yo espero si:

Method Iniciar() Class....
Do While .NOT. ::Mostrar_Dialogo_Seleccion() ; Enddo //???
Tarea_01()
Tarea_02()
Tarea_03()
Tarea_04()
EndIf
Return Nil

Bueno lo pruebo a ver que pasa.
Saludos y muchas gracias!


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Jue Jul 05, 2007 11:06 pm 
Avatar de Usuario

Registrado: Vie Oct 07, 2005 8:26 pm
Mensajes: 115
Ubicación: Valencia - España
Pagues, ¿ como muestras el formulario ? , ¿ has probado mostrarlo con ShowModal() ?

Un saludo.
Víctor


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Jul 06, 2007 7:46 am 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
No lo he probado Victor, lo hare.

Mmmm el codigo que puse como ejemplo infelizmente no funciona por la sencilla razon de que no permite mostrar el formulario al tiempo que ejecuta el bucle, en VB existe la posibilidad de hacer eso me parece, pero no recuerdo la funcion que lo permitia...

Bueno sigo testando...
Saludos


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Jul 06, 2007 5:58 pm 
Avatar de Usuario

Registrado: Mié Oct 19, 2005 7:22 pm
Mensajes: 64
Ubicación: Campo Grande - MS - Brasil
Parace que mostrando con Showmodal el formulario, el methodo para de ejecutarse!!

Gracias!


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Jul 06, 2007 9:12 pm 
Avatar de Usuario

Registrado: Vie Oct 07, 2005 8:26 pm
Mensajes: 115
Ubicación: Valencia - España
Me alegro que lo resolvieras.

Un saludo.
Víctor


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 8 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a: