(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
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
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 |