Autor Tema: como hacer rutinas repetitivas  (Leído 3078 veces)

0 Usuarios y 1 Visitante están viendo este tema.

abadia

  • Visitante
como hacer rutinas repetitivas
« en: 11 de Marzo de 2005, 14:23:00 »
quisiera saber como usar rutinas en vb6 que se repitan siempre sin utilizar el timer... se puede hacer ? saludos manuel

Desconectado akydes_

  • PIC12
  • **
  • Mensajes: 68
RE: como hacer rutinas repetitivas
« Respuesta #1 en: 12 de Marzo de 2005, 01:30:00 »
No entiendo muy bien tu pregunta. Para hacer rutinas o procesos iterativos NO ES NECESARIO usar timers, sino estructuras del tipo:

Codigo:

Do Loop

for

while

...



Si a lo que te refieres es a llevar cuenta de tiempos sin usaar timers, puedes probar con el comando Time, pero me temo que te puede dar problemas al  cambio de días y demás, puesto qeu lo que hace es coger la hora del sistema.

abadia

  • Visitante
RE: como hacer rutinas repetitivas
« Respuesta #2 en: 14 de Marzo de 2005, 11:31:00 »
a lo que me referia es que hacer una rutina que siempre se este repitiendo sin ponerle condiciones para que se ejecute todo esto mientras tenga abierta la ventana o mi program algo como las rutinas de los fpga"s se puede hacer ?

Desconectado akydes_

  • PIC12
  • **
  • Mensajes: 68
RE: como hacer rutinas repetitivas
« Respuesta #3 en: 15 de Marzo de 2005, 08:51:00 »
una rutina sin condiciones??
Aún no sé si es ésto lo que buscas, pero supongo que:
Codigo:


Sub MiProcedimiento()
   " Con esto tienes un bucle infinito.
   While (true)
         " Aquí pones el código de tu programa.
   Wend
End Sub

" Y ahora, creas un módulo con el nombre que te de la gana, y en él escribes el
" procedimiento principal Main (luego tendrás que ir a Proyecto -> propiedades para
" hacer que ésta sea la función de comienzo de tu programa:
" En este módulo, por tanto, tendrás que poner:
Sub Main()
   FormularioDeTuPrograma.Show
   MiProcedimiento
End Sub

" Con ésto cargas el formulario de tu programa, y comienzas a ejecutar el
" procedimiento con el while (true), todo ésto nada más comenzar el programa.
" Para que al descargar el formulario se acabe el procedimiento MiProcedimiento,
" puedes poner en el query_unload un End, aunque lo más fino sería utilizar un in
" dicador, que lo pones a 1 antes de llamar al procedimiento MiProcedimiento, y en
" lugar de un while(true) usas while (indicador). En el query_unload pones el
" indicador a 0, y se acabó.
" Bueno, sobre esto último, hay miles de formas de hacerlo. Espero que sea lo que
" Buscabas.


Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: como hacer rutinas repetitivas
« Respuesta #4 en: 15 de Marzo de 2005, 18:28:00 »
Falta un detalle...
En bucles repetitivos (sobre todo si son largos) hay que dejar tiempo para que Windows (o el sistema operativo que se use) pueda responder las peticiones de el sistema.
Un bucle hecho de la manera que proponen no va a dejar tiempo para que el usuario interactúe con el programa. Por ejemplo: va a querer apretar el boton "Cancelar" o "Cerrar" del formulario y no lo va a permitir, además de dejar todo inoperable de tal manera que a veces hay que hacer un reset. Esta es una diferencia entre programar pics y pcs.
Cuando se usa el control Timer no hay problemas porque entre llamada y llamada del control el SO tiene tiempo de gestionar las tareas en segundo plano (incluído el Timer). Este tipo de bucles For...Next - Do...While, etc funcionan bien cuando son cortos. Cuando se trata de procesos largos hay que agregar alguna instrucción que le indique a Windows que procese los pedidos del sistema. También se usa cuando querés que se "refresque" la información de un control.

Acá van dos formas:

1) Meter en alguna parte del bucle la instrucción "DoEvents". Esto hace lo anteriormente mencionado.

2) En un módulo declarar:
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Y después en vez de usar DoEvents ponemos "Sleep 0&" (sin comillas).

Aparentemente la segunda opción es más efectiva pero suele traer problemas en algunos casos. Es cuestión de probar...

abadia

  • Visitante
RE: como hacer rutinas repetitivas
« Respuesta #5 en: 16 de Marzo de 2005, 13:40:00 »
gracias por sus tips me han servido de mucho en el programa que estoy desarrollando ................  saludos ..... manuel


 

anything