Hallo ihr
Ich habe vor einigen Wochen mit VisualBasic angefangen,
und wollte nun mal etwas mit dem „Pfeiltasten“ machen.
Also… Wenn der benutzer dir Linke Pfeiltaste drückt, gibt er den Text „links“ aus. Wenn er rechts drückt, kommt die Meldung „Links“ usw.
Habe bei GoOgLe leider nichts gefunden…
Könnt ihr mir helfen?
Hallo,
Ich habe vor einigen Wochen mit VisualBasic angefangen,
und wollte nun mal etwas mit dem „Pfeiltasten“ machen.
Also… Wenn der benutzer dir Linke Pfeiltaste drückt, gibt er
den Text „links“ aus. Wenn er rechts drückt, kommt die Meldung
„Links“ usw.
Habe bei GoOgLe leider nichts gefunden…
Könnt ihr mir helfen?
Hallo,
hmmm, mit einem Befehl ist das nicht beantwortet, weil es darauf ankommt, was Du vor hast. Mir fallen fünf Varianten ein. Du kannst die Meldung dann erscheinen lassen, wenn ein bestimmtes Steuerelement den Focus hat, und da hast Du zwei Möglichkeiten. Wenn Du das richtige Steuerelement nimmst, hat das ein Keydown- und ein KeypressEreignis. Da gehört dann Dein Code rein. Zweite Möglichkeit, das soll immer passieren, wenn Deine Form aktiv ist. Dann stellst Du die Eigenschaft ‚Keypreview‘ der Form auf true und nimmst die obigen ereignisse der Form und schreibst da Deinen Code rein. Wenn das immer passieren soll, auch wenn die Form nicht aktiv ist, dann mußt Du über die API gehen und das mit GetAsyncKeystate machen.
Wenn Du Dein Problem genauer beschreibst, bekommst Du einen Beispielcode.
Gruß, Rainer
Hallo Rainer,
danke für deine schnelle Antwort
Mit der Tastatursteuerung möchte ich ein
Objekt auf dem Bildschirm fahren lassen, bzw.
eine Kugel nach Rechts und Links fahren lassen (bei entsprechendem Tastendruck).
PS: Ich weiss, ich kenn mich in VB nicht sonderlich gut aus… aber,
was ist ein Steuerelemt?
Danke schonmal, Karsten
Hallo,
danke für deine schnelle Antwort
Mit der Tastatursteuerung möchte ich ein
Objekt auf dem Bildschirm fahren lassen, bzw.
eine Kugel nach Rechts und Links fahren lassen (bei
entsprechendem Tastendruck).
dann würde ich das bevorzugt mit den Ereignissen der Form machen. Da geht aber immer nur eine Taste. Wenn Du also mehrere Tasten gleichzeitig abfragen willst (z.b: lenken und beschleunigen oder lenken und bremsen) dann kommst Du um die API nicht herum.
PS: Ich weiss, ich kenn mich in VB nicht sonderlich gut aus…
aber,
was ist ein Steuerelemt?
*g* OK, der ist gut.
Steuerelemente sind die Teile, die Du auf die Form legst. Also alles, was in der Werkzeugsammlung angezeigt wird. Buttons, Pictures, Textboxen … Gleiche Steuerelemente lassen sich als Steuerelmentefelder erzeugen, da kann man dann schön und bequem mit Schleifen programmieren. Um mal schgnell eins zu erzeugen, mach mal folgendes:
Lege einen Text auf die Form.
Klick die Textbox mit rechts an.
Klick auf kopieren.
Klick mit rechts auf die Form.
Klick auf Einfügen.
Klick auf Ja.
Nun hast Du zwei Textfelder auf der Form, die beide Text1 heißen. Das eine Text1(0), das andere Text1(1). Die Zahl in den Klammern kannst Du beim Programmieren durch eine Variable ersetzen.
So, aber jetzt Deine Steuerung:
Option Explicit
Private Sub Form\_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37
Me.Caption = "links"
Case 38
Me.Caption = "hoch"
Case 39
Me.Caption = "rechts"
Case 40
Me.Caption = "runter"
End Select
End Sub
Private Sub Form\_Load()
Form1.KeyPreview = True
End Sub
OK?
Gruß, Rainer
Hallo.
Genau so etwas habe ich gesucht
Vielen Dank, Karsten
Hallo Karten,
aber wenn Du nun doch zwei Tasten gleichzeitig brauchst? …
Dann nimmst Du das:
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim txt(4) As String
Private Sub Form\_Load()
Timer1.Interval = 100
txt(0) = "links"
txt(1) = "hoch"
txt(2) = "rechts"
txt(3) = "runter"
End Sub
Private Sub Timer1\_Timer()
Dim i As Integer
Me.Caption = ""
For i = 37 To 40
If GetAsyncKeyState(i) Then
Me.Caption = Me.Caption & txt(i - 37) & " "
End If
Next
End Sub
Gruß, Rainer