Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo Con Función Time
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejemplo Con Función Time 
 
Hola!.

(Vaya, me quede conectado y no me di cuenta).

De ejemplos a ejemplos, acabe sobre uno con la función Time de VB.
El código es este en VB:

Lo que pretende es que la aplicación no haga nada durante 5 segundos.

Private Sub Form_Load()
Dim TiempoPausa, Inicio, Final, TiempoTotal
If (MsgBox("Presione Sí para parar 5 segundos", 4)) = vbYes Then
   TiempoPausa = 5   ' Asigna hora de inicio.
   Inicio = Timer   ' Establece la hora de inicio.
   Do While Timer < Inicio + TiempoPausa
      DoEvents   ' Cambia a otros procesos.
   Loop
   Final = Time   ' Asigna hora de finalización.
   TiempoTotal = Final - Inicio   ' Calcula tiempo total.
   MsgBox "Detenida durante " & TiempoTotal & " segundos"
Else
   End
End If
End Sub
 


En gambas no existe DoEvent como sabéis.
En esta lo que hice es mostrar el paso de los cinco segundos en el lcdlabel.

Public Sub Form_Open()

Me.Center

End

Public Sub Form_Activate()
Dim Inicio, Final, TiempoPausa, TiempoTotal As Date

If Message.Question("Presione Si para parar 5 segundos", "Si", "No") = 1 Then
  TiempoPausa = Time(0, 0, 5)
  Inicio = Time
  Do While Time < CDate(Inicio + TiempoPausa)
    'No existe DoEvents
    Inc Application.Busy  
    LCDLabel1.Text = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
    Dec Application.Busy
  Loop  
  Final = Time
  TiempoTotal = Final - Inicio
  Message.Info("Detenida durante " & TiempoTotal & " segundos")
Else
  Me.Close
Endif  

End
 


Para efecto curioso, eliminar las lineas que contiene Inc Applicaton.Busy y Dec Application.Busy

Saludos

EjemploFuncionTime.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemploFuncionTime.tar.gz
Tamaño: 5.63 KB
Descargado: 40 veces
EjemploFuncionTime.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemploFuncionTime.tar.gz
Tamaño: 5.63 KB
Descargado: 40 veces
EjemploFuncionTime.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemploFuncionTime.tar.gz
Tamaño: 5.63 KB
Descargado: 40 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Miercoles, 09 Julio 2014, 21:11; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo Con Función Time 
 
Shell:

Citar:
Para efecto curioso, eliminar las lineas que contiene Inc Applicaton.Busy y Dec Application.Busy

Muy curioso, si las elimino, el label no se actualiza y no sale... y los dejo como lo tienes se ve claramente como  se van "refrescando" los valores del label... muy interesante...

Otra cosa interesante... con tu código, la "carga" del cpu aumenta exesivamente (en mi ordenador), pero si metes un wait, esa carga no aumenta, y sigue funcionando el programa bien:
Do While Time < CDate(Inicio + TiempoPausa)
      'No existe DoEvents
      Inc Application.Busy  
      LCDLabel1.Text = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
      Dec Application.Busy
      
     Wait 0.1 'añado que espere un momento
    Loop  


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo Con Función Time 
 
jsbsan escribió: [Ver mensaje]

Otra cosa interesante... con tu código, la "carga" del cpu aumenta exesivamente (en mi ordenador), pero si metes un wait, esa carga no aumenta, y sigue funcionando el programa bien:


Efectivamente, eso pasa. Creo que con DoEvent pasa lo mismo. Incomprensible, ya que se supone que es para liberar la carga de cpu.  

Es posible jugar con wait. No se si realmente llega a ser efectivo Application.busy.  
Ya ves que solo es una linea lo que hay entre las dos.

Creo que he visto esa instrucción en algún ejemplo de los que incorpora Gambas.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron