Avatar billede brilleabe Nybegynder
08. maj 2004 - 14:53 Der er 11 kommentarer og
1 løsning

aktiver command button via keypress

Jeg har lavet en simpel lille form i vb6.0 hvor jeg kan sende events til grider (ir styring).

Jeg har ca. 20 subs som denne:
Private Sub Command2_Click()
Dim RetVal As Double
RetVal = Shell("C:\Program Files\girder32\girder.exe -eventstring tuner")
End Sub

Nu kunne jeg godt tænke mig at lave genvejstaster til de fleste af dem. Det skal være UDEN ctrl+alt og ligende. F.eks. kan man trykke på t for at aktivere ovenstående sub. 'Genvejstasterne' skal kun være tilgængelige når vinduet er aktiveret. (det er meningen at det skal ligge i baggrunden - så kan man lige flippe vinduet frem med ctrl+tab trykke en tast/genvej og så flippe tilbage til det oprindelige vindue)

Håber i forstår.
08. maj 2004 - 15:17 #1
Sæt egenskaben KeyPreview = true på formen.

På formens Form_Keypress skriver du således:

Select Case KeyAscii
  Case vbkeyT: Command2_Click
  Case vbkeyP: commandHvadVedJeg_Click
End select
Avatar billede brilleabe Nybegynder
08. maj 2004 - 17:08 #2
jeg fatter desvære ikke en pind. Kan du forklare nærmere. Hvordan vil et eksempel med min sub og 't' se ud ?
Avatar billede martin_moth Mester
08. maj 2004 - 18:38 #3
Det kan næsten ikke forklares nærmere. Koden skal se ud som vist, og smides i formens keypress-event
Avatar billede brilleabe Nybegynder
09. maj 2004 - 09:31 #4
Du har jo fuldstændig ret. Det kan ikke forklares nærmere - efter at have læst lidt i hjælp, fatter jeg det.

Det virker bare !
Avatar billede brilleabe Nybegynder
09. maj 2004 - 09:39 #5
Kan det passe at den kun acceptere store bogstaver ? (og kan man få lov til at bruge '+' på en eller anden smart måde)
09. maj 2004 - 10:40 #6
nej, du kan bruge små bogstaver ved at bruge andre værdier end vbkeyT.
Bruge i stedet Asc("t")

+ har værdien 43
Avatar billede brilleabe Nybegynder
09. maj 2004 - 17:49 #7
Tak for hjælpen !
Asc("t") virker perfekt, men det kniber lidt med: Asc("43") eller Asc("43") eller Asc43 - eller er der bare noget der er smuttet for mig ?
09. maj 2004 - 19:23 #8
ja, sorry...:o)

enten indsætter du Asc("+") eller du indsætter blot 43

Asc("+") = 43
09. maj 2004 - 19:25 #9
Prøv evt at trykke Ctrl+G
I immidiate-vinduet skriver du:
?Asc("t")  (og tryk ENTER)

Så får du værdien
Avatar billede brilleabe Nybegynder
09. maj 2004 - 20:17 #10
respekt !
09. maj 2004 - 20:20 #11
tak :o)

Du kan således skrive således for at checke på både store og små bogstaver:

Select Case KeyAscii
  Case vbkeyT, 116: Command2_Click            'Asc("t") = 116
  Case vbkeyP, 112: commandHvadVedJeg_Click  'Asc("p") = 112
End select
Avatar billede brilleabe Nybegynder
09. maj 2004 - 20:38 #12
Jeg har et par sp mere - så jeg opretter lige et nyt spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester