Visual Basic 6'da KeyDown Sorunu (KOLAY)

Başlatan veliusta, 04 Temmuz 2013, 20:31:31

veliusta

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKey1 Then Kutu.Text = Val(Kutu.Text) + 1
End Sub


Yukarıdaki kod sayesinde 1.ci tuş ile Text kusundaki 0 sayısı +1 artıyor. Ama Tuştan parmağımı kaldırmaz isem sürekli sayıyı artırıyor. Bunu nasıl engelleyebilirim?

muhittin_kaplan

keyup la yap. basınca değil çekince saysın.

veliusta


Salih

Delphi'de Onclick Event'ı var. Vbasic'deki karşılığını bilmiyorum.
Onu kullanabilirsin.
Ya da ilk_defa diye boolean bir değişken tanımlarsın.
İlk çalışmanın sonunda False değeri atarsın.
Tuş yukarı kalktığında tekrar True yaparsın.
Eylemi yapmak için
if ilk_defa then sayi = sayi + 1;

influx

Dim x As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 And x = False Then
    kutu.Text = Val(kutu.Text) + 1
    x = True
    End If
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
x = False
End Sub

Private Sub Form_Load()
x = False
End Sub

muhittin_kaplan

keypress oluyormuydu ki. Hatırlamıyorum.

veliusta

Alıntı yapılan: influx - 04 Temmuz 2013, 21:51:24
Dim x As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 And x = False Then
    kutu.Text = Val(kutu.Text) + 1
    x = True
    End If
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
x = False
End Sub

Private Sub Form_Load()
x = False
End Sub

Teşekkürler bu işimi görür.