TECLA PREMIDA

IGNORANTE 04/03/2010 13:11:05
#336045
Olá

Tenho o seguinte:

Private Sub UpDown1_UpClick()
aumente uma unidade em ...
End sub

e quero

Private Sub UpDown1_UpClick()
enquanto o controlo estiver premido vá aumentando uma unidade em ...
End sub

Isto para que o valor vá aumentando sucessivamente sem estar a repetir os click.
Já experimentei usar Change em vez de Click e combinar os dois mas não funciona bem.

Obrigado desde já pela ajuda.

Cumprimentos.


DANIKULL 04/03/2010 13:24:16
#336048
Resposta escolhida
IGNORANTE, boa tarde.

Declare uma Variável de escopo Global
Option Explicit
Dim Cont As Integer


Coloque um controle Timer
Private Sub Timer1_Timer()
Cont = Cont + 1
End Sub


No Envendo Form_Load() Coloque estes Parâmetros
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 50 [ô]Será a velocidade da contagem, se for 1000 diz que cada acréscimo levará 1 segundo, esta unidade é milessegundo
End Sub


No evendo MouseDows libere a contagem do timer
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = True
End Sub

No Evendo MouseUp bloqueie a contagem e mostre o valor
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
MsgBox Cont
End Sub



Dúvidas Poste novamente...
IGNORANTE 04/03/2010 15:35:23
#336064
Obrigado. Funciona como eu queria.
Só tenho de fazer pequenas modificações porque o que eu tenho é um bocado mais complicado do que eu escrevi. Não é um simples contador, é uma forma de efectuar movimentos contínuos, mas o fundamento é o mesmo.
Obrigado mais uma vez.
Tópico encerrado , respostas não são mais permitidas