Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Näppäimen tunnistus vain kerran

Kulma [23.12.2005 16:34:00]

#

Miksköhän mun formi välkkyy (Me.visible=false->me.visible=true->me.visible=false jne.) sillon kun sen pitäisi olla poissa näkyvistä?

Private Sub menushow_timer()
If (GetAsyncKeyState(vbKeyControl)) And Me.Visible = False Then
Me.Visible = True
Else
If (GetAsyncKeyState(vbKeyControl)) And Me.Visible = True Then
Me.Visible = False
End If
End If
End Sub

EDIT: En pysty editoimaan alempana olevaa tekstiä joten:
Yritin tolla getKetstatellakin, mutta mitä pitää kirjoittaa että tuo tapahtuu vain kun control on pohjassa, GetKeyStatella?

Miten saan että kun control on pohjassa se tekee ton?

petrinm [23.12.2005 17:40:04]

#

Itse koodin toiminnassa ei ole mitään vikaa, mutta onko timerin interval joku muu kuin nolla?

Tässä ois vielä vähän yksinkertaistettuna toi toinen ehto ElseIf kanssa.

Private Sub menushow_Timer()

    If GetAsyncKeyState(vbKeyControl) And Me.Visible = False Then
        Me.Visible = True
    ElseIf GetAsyncKeyState(vbKeyControl) And Me.Visible = True Then
        Me.Visible = False
    End If

End Sub

sooda [23.12.2005 17:44:16]

#

Yksinkertaistanpa lisää

Private Sub menushow_Timer() {
    If GetAsyncKeyState(vbKeyControl) Then Me.Visible = Not Me.Visible
End Sub

Merri [24.12.2005 05:16:06]

#

Kannattaa tarkistaa mitä GetAsyncKeyState palauttaa arvona: tarkistuksen pitäisi varmaankin olla

(GetAsyncKeyState(vbKeyControl) > 127)

Kulma [24.12.2005 17:04:21]

#

sooda kirjoitti:

Yksinkertaistanpa lisää

Private Sub menushow_Timer() {'Kuuluuko tää merkki tähän?
    If GetAsyncKeyState(vbKeyControl) Then Me.Visible = Not Me.Visible
End Sub

Välkkyy vieläkin.

Antti Laaksonen [26.12.2005 23:24:58]

#

Kokeilepa tätä:

Private Sub menushow_Timer() ' tähän ei kuulu { -merkkiä
If GetAsyncKeyState(vbKeyControl) And 1 Then
    Me.Visible = Not Me.Visible
End Sub

MSDN kirjoitti:

If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.

Suomentaja kirjoitti:

Jos eniten merkitsevä bitti on 1, näppäin on painettuna, ja jos vähiten merkitsevä bitti on 1, näppäintä on painettu edellisen funktiokutsun jälkeen.

Tuota vähiten merkitsevää bittiä päästään tarkastelemaan juuri And-operaattorin avulla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta