Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: näppimistö

Sivun loppuun

CoDeR [19.03.2004 09:15:52]

#

Tuli vaan mieleen et miteen vs:ssä saa sillee et jos painaa
vaik näppäintä A, niin ohjelma käsittää sen niin että käyttäjä painoi näppäintä P?(esim:)

setä [19.03.2004 09:19:50]

#

Keypress-tapahtumaan
If KeyAscii = Asc("A") Then keyAscii = Asc("P")

CoDeR [19.03.2004 09:42:13]

#

Kiitti, toimiiks toi sillee et jos sil "A" näppäimel on joku toiminto määrätty ni ohittaako se senki? esim. jos painaa A, ni sit MsgBox=Moi?

setä [19.03.2004 09:56:31]

#

Riippuu mihin tapahtumaan se koodataan. KeyDown suoritetaan tietenkin ennen keyPressiä ja viimeisenä KeyUp. Tai jos koodaat sen samaan tapahtumaan. Siis

If KeyAscii = Asc("A") Then
   MsgBox "Moi !"
   KeyAscii = Asc("P")
End If

Siis ei ohita, paitsi jos käytät KeyCodea, muutat sen KeyDown-tapahtumassa ja tuon MsgBoxin koodaat sitten KeyUp-tapahtumaan. Parasta vielä tarkistaa, saako KeyCoden muutettua. Ei muutu koodilla ainakaan VB5:ssä. Siis ei voi ohittaa. Miksi se pitäisi ohittaa tai mihin itseasiassa pyrit???

setä [19.03.2004 11:28:23]

#

Tulipa tuohon nyt söhellettyä mutta vähän lisää. Jos näppäinpainallus kohdistuu textBoxiin esim. Text1, voit Form_Keypress-taphtumassa muuttaa koodia ja jos tuo MsgBox-juttu on sitten Text1_Keypress-tapahtumassa, silloin tuo MsgBox voidaan ohittaa. Toivottavasti asia selkis, ainakin itselleni se nyt selkis. Formin KeyPreview pitää olla tällöin tilassa true.

setä [19.03.2004 13:41:40]

#

Tuo asia jäi sen verran vaivaamaan että tein seuraavan testin:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Debug.Print "FormDown"; KeyCode
  KeyCode = KeyCode + 1
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
  Debug.Print "FormPress"; KeyAscii
  KeyAscii = KeyAscii + 1
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  Debug.Print "FormUp"; KeyCode
  KeyCode = KeyCode + 1
End Sub

Private Sub Text1_Change()
  Debug.Print "TextChange"; Asc(Right(Text1, 1))
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  Debug.Print "TextDown"; KeyCode
  KeyCode = KeyCode + 1
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
  Debug.Print "TextPress"; KeyAscii
  KeyAscii = KeyAscii + 1
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
  Debug.Print "TextUp"; KeyCode
  KeyCode = KeyCode + 1
End Sub

Capslock on päällä ja painan A. Immediateikkunaan tulostuu:

FormDown 65
TextDown 66
FormPress 65
TextPress 66
TextChange 67
FormUp 65
TextUp 66

Eihän siinä muuta yllättävää ole kuin tapahtumien järjestys.

sooda [19.03.2004 13:45:01]

#

Eikös se ole ihan loogista.

setä [19.03.2004 14:36:51]

#

No jokseenkin, mutta tuo Changen paikka selviää vain kokeilemalla. Samoin Press ja Up, kumpikin tapahtuu näppäimen vapautuessa ja Changekin vielä.

CoDeR [19.03.2004 18:19:35]

#

hmm.... en nyt tiedä oikein miten sen saisin kun tuli niin paljon asiaa =). Tarkoituksenani oli tehdä pilailuohjelma
joka avautuu ruudulle ja lähtee vasta kun timerin aika loppuu. Mutta ongelmana on että sen saa lopetettua jo ennen
timerin loppua (alt+ctrl+del).... ja se pitäisi saada niin ettei se toimisi ennen timerin loppua :D... osaisitko semmoses neuvoo? sen timerin oon saanu jo tehtyy.

remontti-reiska [19.03.2004 18:27:13]

#

https://www.ohjelmointiputka.net/koodivinkit/24050-vb6-estä-ctrl-alt-del-ym
Tuo kaiketi auttaa ctrl+alt+del yhdistelmän lukittamisessa ja Keyasciin voi ohittaa:

If Keyode = vbkey? Then
----
End If

Itse teen aina noin :).

CoDeR [19.03.2004 18:43:58]

#

joo, kiitti :D

CoDeR [19.03.2004 19:05:19]

#

mut en kyl saaa toimii tota... :(

sooda [19.03.2004 19:23:15]

#

sendkeyssitä kokoajan esciä ;)

CoDeR [19.03.2004 19:31:59]

#

... lol

sooda [19.03.2004 19:39:03]

#

hei, se toimii, Puhveli sai koneensa jumiin silleen koulussa ;D eikä toimi edes ctrlaltdel!

setä [19.03.2004 20:17:07]

#

Joo, Sendkeys toimii, vaikka loopissa on DoEvents! Kaikkee te keksittekin ;)

CoDeR [26.03.2004 09:01:30]

#

Miten se sendkeys juttu menee ku en oo oikeestaan hirveesti
käyttäny sitä? :D

Antti [26.03.2004 12:44:34]

#

Jos kaikkien teidän tähän näppiksen sotkemiseen käytetyt miestyötunnit olisi käytetty tuottavaan työhön olisitte luultavasti äveriäitä kavereita ;D


Sivun alkuun

Vastaus

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

Tietoa sivustosta