Ich wollte ein kleines Spiel machen und dabei bin ich auf folgendes Problem gestoßen:
Der Benutzer muss Eingaben machen, um den Charakter zu steuern.
Die sollte man möglichst über die Tastatur machen. Da hab ich folgende Prozedur gefunden.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Timer1Timer(Sender: TObject); var keyloop, KeyResult : Integer; begin keyloop := 0; repeat KeyResult := GetAsyncKeyState(keyloop); if KeyResult = -32767 then begin if (KeyLoop >= 65) and (keyloop <= 90) then Memo1.Text := Memo1.Text + Chr(keyloop); if (keyloop >= 32) and (keyloop <= 63) then Memo1.Text := Memo1.Text + Chr(keyloop); if keyloop = 8 then Memo1.Text := copy(Memo1.Text,1,Length(memo1.Text) - 1); //numpad keycodes if (keyloop >= 96) and (keyloop <= 110) then Memo1.Text := Memo1.Text + Chr(keyloop); end; inc(keyloop); until keyloop = 255; end; |
(Memo ist nur für Testzwecke, um zu sehen, welche Tasten er abfängt.)
Allerdings kann ich damit nur Zahlen und Buchstaben abfangen. Gibt es Möglichkeiten, um auch die Sonderzeichen, wie z.B. Enter, Cursor etc. auszugeben?