Form.KeyDown löst nicht aus
-
Hey,
Mein Code ist nicht falsch, das Problem, das ich habe ist wohl generell. Ich programmiere derzeit ein Spiel und möchte hierbei Tastendrücke über das KeyDown Event der Form abfangen und diese auswerten. Mit W, A, S und D klappt das wunderbar. Mit den Pfeiltasten aber nicht. Das Event wird schlicht nicht ausgelöst, was wohl an dem Button auf meiner Form liegt. Das Event KeyUp löst übrigens aus. Ich denke, dass das daran liegt, dass man während der Laufzeit durch die Pfeiltasten ja Komponenten auswählen kann. Kann man das Problem irgendwie lösen?
PS: KeyPrieview ist an
Danke
-
Sauber lösen wirst du es nur, indem du die richtige Message abfängst, in diesem Fall
CM_CHILDKEY.
Dazu musst du allerdings die protected Methode WndProc überschreiben bzw. die Nachricht mappen.
Beispiel;void __fastcall TForm1::WndProc(Messages::TMessage &Message) { switch(Message.Msg) { case CM_CHILDKEY: switch (Message.WParamLo) { case VK_LEFT : // dein Code Message.Result = 1; // Nachricht nicht weiter verarbeien break; case VK_UP : // weiterer Code Message.Result = 1; break; . . . } break; } TForm::WndProc(Message); }
Peter
-
Hallo @mods,
wenn man die Beiträge von @zailaiboke anschaut, ist dieses hier der 3. Thread, in den er sinnfrei postet. Könnt ihr das bereinigen?
MfG
Peter
-
Hallo
Das war ein Spammer, ich habe ihn gebannt.
bis bald
akari