Tema: TripleClick
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/06/2006, 23:09
Avatar de piojoman
piojoman
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 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!!!!...