
17/06/2006, 23:09
|
 | | | Fecha de Ingreso: enero-2005 Ubicación: Argentina
Mensajes: 224
Antigüedad: 20 años, 3 meses Puntos: 3 | |
No hace falta el Timer, un control aunque parezca insignificativo llevan muchas lineas detras de el y desperdiciamos recursos innesesariamente, la alternativa, la siguiente...
Dim Veces As Byte, Tiempo As Byte
Private Sub Form_Load()
Veces = 0
Tiempo = Second(Now)
End Sub
Private Sub Text1_Click()
Detectar
End Sub
Private Sub Text1_DblClick()
Detectar
End Sub
Function Detectar()
If Abs(Second(Now) - Tiempo) < 1.3 Then '1.3 es el seg. que se le da para esperar al otro clic (buscar el tiempo que mejor se adapte)
Veces = Veces + 1
Else
Veces = 0
End If
Tiempo = Second(Now)
If Veces = 2 Then
MsgBox "Se presionaron tres clic seguidos dentro de los 1.3 seg."
' Aqui va el resto del codigo....
Veces = 0
End If
End Function
' Una variable toma el segundo actual en que presionas una vez, y se llena un contador de clics(otra variable), al llegar a tres automaticamente se ejecuta el codigo deseado, la parte de resaltar el parrafo o lo deseado corresponde a otro tema, si las dudas persisten no dudes en preguntar
CONSEJO: Yo use el seg del ultimo clic y el reloj de windows para sacar la diferencia de tiempo pero existe un posible problema si los clics consecutivos llegaran a estar en los segundos cercanos al 59. O sea, si presionamos una vez en el seg. 58, otro en el seg 59 la resta de ambos da 1 por lo tanto la variable Veces cambia de valor, pero si luego el tercer clic lo damos en el seg 0 la diferencia sera (59 - 0) = 59 <> 1.3 lo que hace que no sume la variable Veces.
Espero que se alla entendido todo Bye!!!!... |