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?
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
Yksinkertaistanpa lisää
Private Sub menushow_Timer() { If GetAsyncKeyState(vbKeyControl) Then Me.Visible = Not Me.Visible End Sub
Kannattaa tarkistaa mitä GetAsyncKeyState palauttaa arvona: tarkistuksen pitäisi varmaankin olla
(GetAsyncKeyState(vbKeyControl) > 127)
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.