Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - keydown / keyup mit spezifischen Tasten?
GR-Thunderstorm - Mi 24.01.07 11:26
Titel: keydown / keyup mit spezifischen Tasten?
Ich möchte ein kleines Spiel basteln und für die Steuerung brauche ich die FormKeyDown und /-Up Funktionen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = ord('d') then gehe; end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = ord('d') then stehe; end; |
Das Problem ist, dass wenn ich die Taste 'd' Drücke, nichts passiert... :(
Wenn ich das "if key = ord('d') then" weglasse, führt er meine Prozeduren bei jeder Taste aus.
Was mache ich falsch?
Blackheart666 - Mi 24.01.07 12:10
if chr(Key)='d'
jaenicke - Mi 24.01.07 12:37
Ist doch exakt dasselbe... :lol:
Was du doch jedenfalls machen willst, ist doch wohl, dass du kontinuierlich weiterläufst solange die Taste gedrückt ist, oder? Wo machst du denn das?
Dein Code hier ist jedenfalls erstmal korrekt. Aber was passiert, wenn die Methoden ausgeführt werden denn?
OnKeyDown wird ja nur einmal beim Drücken ausgelöst, insofern müsste ja in gehe ein Timer oder irgendwas anlaufen, wenn etwas passieren soll, solange die Taste gedrückt wird.
GR-Thunderstorm - Mi 24.01.07 17:06
Ja genau, gehe ist eine Prozedur, die diverse Timer startet die für verschiedene Bewegungen zuständig sind.
Mit "stehe;" werden diese wiederrum allesamt deaktiviert.
Leider nur funktioniert das so alles eben nicht... :/
Wenn ich mit form.keypress arbeite und dann if key = 'd' then gehe; angebe, funtioniert ja alles, nur dass ich eben auf diese Weise die Prozedur stehe; nicht ausführen kann.
Edit:
Um die ganzen Timer mit den zusammenhängenden Variablen auch noch zu erklären, müsste ich den gesamten Quellcode hier posten, und der geht schon über mehrere Seiten... ;)
GR-Thunderstorm - Mi 24.01.07 17:35
Argh ich hab den Fehler gefunden.. -.-'
if key = ord('D') then ..;
Mit nem großen D klappts, mit nem kleinen nicht. -.-
Trotzdem erstmal Danke! :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!