Steuerung durch Tastatur

smuuuf

Mitglied
Hi!

Ich suche ein Tutorial, indem es darum geht, wie man mit Tastenklicks (z.B. den Pfeiltasten) ein Programm "steuern" kann.

Hat da jemand eins parat?

Gruß,
smuuuf
 
Mein eigenes...

Zum Beispiel (in einem Spiel oder so):

"Pfeil runter" -> Menüpunkt 2 wird umrandet (shape 2.visible = true) (alle anderen nicht sichtbar)
"Pfeil runter" -> Menüpunkt 3 wird umrandet (shape 3.visible = true) (alle anderen nicht sichtbar)

"Pfeil hoch" -> Menüpunkt 2 wird umrandet (shape 2.visible = true) (alle anderen nicht sichtbar)

"Pfeil hoch" -> Menüpunkt 1 wird umrandet (shape 1.visible = true) (alle anderen nicht sichtbar)

Und wenn das jeweilige Shape visible ist, und dann ENTER gedrückt wird, dann zum Beispiel 'MsgBox "menüpunkt 1 gedrückt".


War das verständlich? ^^

gruß
 
Ist im Prinzip einfach, am besten du verwendest das KeyDown-Event der Form. Dazu stellst du erst die KeyPreview-Eigenschaft deiner Form auf True, damit werden alle Tastendrücke erst mal über die Form gejagt. Jetzt kannst du in dem KeyDown-Event der Form die Tasten abfragen:
Visual Basic:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = vbKeyUp Then
  Shape1.Visible = True 'Das Shape anzeigen
  Shape2.Visible = False 'Alle anderen verstecken
 End If
 'Die anderen Tasten sind vbKeyDown, vbKeyLeft und vbKeyRight
End Sub


Der Doc!
 
Ich habe jetzt 2 Shapes untereinandr angeordnet und folgenden Code eingefügt:

PHP:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp And Shape1.Visible = True Then
End Sub
End If

If KeyCode = vbKeyUp And Shape1.Visible = False Then
Shape1.Visible = True 'Das Shape anzeigen
Shape2.Visible = False 'Alle anderen verstecken
End If

If KeyCode = vbKeyDown And Shape1.Visible = True Then
Shape1.Visible = False 'Das Shape anzeigen
Shape2.Visible = True 'Alle anderen verstecken
End If

If KeyCode = vbKeyDown And Shape1.Visible = False Then
End Sub
End If

End Sub

Doch es tut sich nichts -.-
 
KeyPreview-Eigenschaft der Form auf True gestellt (obwohl du es nicht brauchst, wenn du nur Shapes hast, gewöhn dir es aber an)?

Ich hab den Code probiert, bei mir hat sich schon was getan. Es ist nämlich eine Fehlermeldung gekommen, um eine Prozedur vorzeitig zu beenden darfst du nicht End Sub verwenden sondern musst Exit Sub verwenden. Der korrigierte Code funktioniert bei mir ohne Probleme:
Visual Basic:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp And Shape1.Visible = True Then
Exit Sub
End If

If KeyCode = vbKeyUp And Shape1.Visible = False Then
Shape1.Visible = True 'Das Shape anzeigen
Shape2.Visible = False 'Alle anderen verstecken
End If

If KeyCode = vbKeyDown And Shape1.Visible = True Then
Shape1.Visible = False 'Das Shape anzeigen
Shape2.Visible = True 'Alle anderen verstecken
End If

If KeyCode = vbKeyDown And Shape1.Visible = False Then
Exit Sub
End If
End Sub
BTW: Es gibt für VB eigene Codetags, verwende [code=vb] bzw. [/code] statt der PHP-Tags. Für die VB-Tags gibt es aber leiden keinen Button, du musst sie per Hand eingeben.


Der Doc!
 
Ah mal wieder hab ich ein Brett vorm Kopp gehabt :mad:

Ich hatte noch Buttons auf dem Formular und durch das drücken habe ich nur zwischen den Buttons gewechselt ;)

Also vielen Dank!

BTW BACK: Ich hatte jetzt mal php genommen, da man sonst die Nummern (jeder Zeile) wegmachen muss...
 
Also, ich hab mit den VB-Tags kein Problem, er zeigt dir zwar die Nummern vorne an, du kannst den Code aber ohne Nummern auswählen und dementsprechend kopieren.


Der Doc!
 
Zurück