Registriert: Di Nov 18, 2008 11:10 Beiträge: 23 Wohnort: Hamburg
Okay keyprewiev der Form ist true aber es geht immer noch nicht... ???
ähm... zusatzt angaben: es geht die tasteneingabe bei einem TImage (da gibts aber kein Key-Preview...)
Hier mal zusätzlich der Quellcode,( den ich eigentlich gar nicht selbst geschrieben habe sonder als Tutorial dient...)
(handelt sich um ein Snake spiel)
Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
für tasten abfragen verwende ich nen Code in der form:
Code:
if getasynckeystate(VK_UP) <> 0
then top:= top + fps*128;
dieser code wird unabhängig vom focus ausgeführt (wenn man nicht aufpasst sogar, wenn nichteinmal das Programm
aktiv ist, was zur folge hat, dass zB. das Schreiben in ICQ auch die events auslöst).
Funktionieren tut es dafür zuverlässig in den meisten Fällen. mit einem Array[0..255] of boolean, kann man dann
den zustand speichern, ob die taste noch gedrückt ist. dafür verwende ich dann diesen code:
Code:
var keylist:array[0..255]ofboolean;
if getasynckeystate(VK_UP) <> 0
thenbegin
if(keylist[VK_UP]=false)
then aktionausfuehren;
keylist[VK_UP]:=true;
end
else keylist[VK_UP]:=false;
auf diese weiße kann man eine aktion nur einmal pro tastendruck ausführen. Ist zwar zum herum fahren auf tastendruck
unnötig, aber bei anderen Sachen wider nützlich.
Allerdings weiß ich nicht, ob diese Lösung so sauber ist, wie sie mir rüberkommt.
Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.