Hi!
Hoffentlich klärt sich das Problem nicht auch von selbst
Also ich habe die Steuerung über die Tasten folgendermaßen realisiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin keys[key]:=True; if Keys[VK_RIGHT]=true then XPlusAn; if Keys[VK_LEFT]=true then XMinusAn; if Keys[VK_UP]=true then YPlusAn; if Keys[VK_DOWN]=true then YMinusAn; end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin keys[key]:=False; if Keys[VK_RIGHT]=false then XPlusAus; if Keys[VK_LEFT]=false then XMinusAus; if Keys[VK_UP]=false then YPlusAus; if Keys[VK_DOWN]=false then YMinusAus; end; |
Das geht auch soweit wunderbar, nur das, wenn ich eine Taste länger als etwa eine Sekunde drücke, diese hängen bleibt, also das FormKeyUp Ereignis nicht ausgelöst wird (z.B. bleibt dann XPlus an und geht nich aus!).
Sicherlich liegt das daran, dass Windows eine bestimmte Anzahl von Tastendrücken zwischenspeichert, aber ich weiß nicht, wie man das lösen kann...
Danke für Antwort!
Grüße; ähM_Key
PS: Ich weis, dass man das =true weglassen kann, habs aber der Übersicht wegen stehen gelassen!
