FoxPro/Visual FoxPro - Detener while desde otro lado y retardar ejecución de programa

 
Vista:
Imágen de perfil de SoyWilly

Detener while desde otro lado y retardar ejecución de programa

Publicado por SoyWilly (264 intervenciones) el 11/11/2011 13:22:03
Hola a todos.

Tengo que mostrar un campo de una tabla que tiene cientos de registros en forma continua, durante 2 segundos o mas y debo detener en cualquier momento y volver a mostra,r volver a deterner, asi sucesivamente.

utilice lo siguiente:
Conti='s'
DO WHILE Conti='s'
Thisform.Label1.caption=Tabla.nombre
WAIT WIND TIME OUT 2
SKIP
ENDDO

Esto esta en un boton, en otro boton están Conti='n', supuestamente para detener el bucle while, pero el bucle no se detiene, continua.
Como hago para deter la ejecución del programa por unos intantes, o sea que corra lento en cada bucle y luego ese bucle desde otra parte del formulario?.

Gracias por la ayuda, estare al tanto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Detener while desde otro lado y retardar ejecución de programa

Publicado por Juan Manuel Cruz (512 intervenciones) el 11/11/2011 13:51:29
¿Has probado a usar el objeto TIMER? Sería la opción más sensata, si quieres un bucle, junto con el botón de stop.

Vamos, que no es difícil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Detener while desde otro lado y retardar ejecución de programa

Publicado por Carlos Cuyé (75 intervenciones) el 11/11/2011 22:55:11
DO WHILE .T.
........
Acciones
........

w=INKEY() && Lee buffer del teclado
IF w=ASC('N').OR.w=ASC('n')
EXIT && Si se pulsa 'N' o 'n', sale del bucle y continúa con lo que siga luego del ENDDO
ENDI

........
Acciones
........

ENDDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SoyWilly

Detener while desde otro lado y retardar ejecución de programa

Publicado por SoyWilly (264 intervenciones) el 13/11/2011 04:20:47
Hola a todos.

El timer controla a toda la ejecución del programa, pero yo no deseo eso, quiero hacer lento secciones del programa, Cuando haga clic en boton "mostrar" debe mostrar un nombre de la tabla registros por 2 o 3 segundos, luego debe mostrar el siguiente registro, luego el siguiente, sin que el usuario deba oprimir cualquier tecla ni hacer clic, y cuando desea detener en un registro, debe hacer clic en el boton detener, podrá ejecutar el boton Mostrar cuiando desee u otros botenss del formulario. Ahora no se se el código de los botones: Mostrar ni detener.
Espero sus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Detener while desde otro lado y retardar ejecución de programa

Publicado por Juan Manuel Cruz (512 intervenciones) el 14/11/2011 10:44:31
Todo ese comportamiento que has descrito y que esperas de tu formulario se puede obtener con el objeto TIMER. Es lo correcto, programación orientada a objetos. Basarse en un bucle DO WHILE, personalmente y sin querer molestar a nadie, me parece un método obsoleto de programación.

Si no lo quieres intentar, de poco sirve cualquier consejo que se de.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Detener while desde otro lado y retardar ejecución de programa

Publicado por Carlos Cuyé (75 intervenciones) el 14/11/2011 17:27:29
SELECT TuTabla
SCAN && o DO WHILE o FOR ...
********
*** Acciones para mostrar registros
********
INKEY(3) && Espera 3 segundos y continua

ENDSCAN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de SoyWilly

Detener while desde otro lado y retardar ejecución de programa

Publicado por SoyWilly (264 intervenciones) el 15/11/2011 19:49:55
Esto era justo lo que estaba buscando, lo probé y funciona de maravilla.

Gracias Carlos Cuyé, me da gusto q respondas con algo concreto y no con comentarios, una vez mas GRACIAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 309
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Detener while desde otro lado y retardar ejecución de programa

Publicado por santiago (551 intervenciones) el 14/11/2011 21:49:59
Hola, la respuesta exacta ya te la dio Carlos Cuye, tienes que trabajar con el inkey() dentro del do while, es cuestion que lo pongas en marcha.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Detener while desde otro lado y retardar ejecución de programa

Publicado por Carlos Cuyé (75 intervenciones) el 15/11/2011 17:49:34
Cha'gracias Santiago! A pocas palabras, buenos entendores...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar