OnKeyDown, OnKeyUp --> Name von "Key"?
-
Hallo Gemeinde,
ich hatte vor einigen Jahren schonmal das Problem gehabt und sogar hier im Forum eine Lösung gefunden, aber irgendwie finde ich sie nicht wieder.
Und zwar möchte ich dem Key bei den Events OnKeyDown und OnKeyUp ganz gerne einen Namen geben - ob Deutsch oder Englisch ist mir ziemlich egal. Ich weiß, dass das mit Systemfunktionen funktioniert hatte, also eine manuelle Datenbank / Tabelle ist nicht notwendig.
Hat jemand zufällig das alte Thema parat oder weiß jemand 'ne kurze Lösung?
Beispiel:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { /* Key==VK_RETURN --> Enter... Key ist vom Typ WORD... Ich wuerde aber gerne einen String wo auch ein Name drinsteht haben... */ }
-
getKeyName()
???
-
Die Funktion gibt's bei mir leider nicht - ich muss dazu sagen, dass ich noch den BCB 3 verwende...
-
Sorry,
muss lauten:GetKeyNameText(...)
-
Okay, hab momentan keine andere Lösung gefunden als wirklich über Hooks zu gehen. Ist zwar äußerst umständlich, auch nicht gerade benutzerfreundlich, in diesem Projekt, aber Key kann ich der Funktion ja nicht einfach mal so übergeben. Etwas anderes weiß ich im Moment nicht.
Danke trotzdem.
-
Schau Dir das mal an:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1475902.html
Interessant ist das in der if()- Avfrage!
-
Sone Schleife wollte ich eher vermeiden. Dann bleib ich lieber bei Hooks.
-
???
Hast Du Dir das überhaupt richtig angesehen?
Du brauchst die Schleife ja nicht, wie ich schon anmerkte!
-
Ich hab mir den Quelltext nicht nur angesehen, sondern ihn sogar verstanden. Ich habe ihn sogar testweise umgesetzt uns muss einige Unterschiede zur Hook-Version feststellen: Pfeiltasten werden als NUMPAD-Keys erkannt ("4 (NUMKEYS)" statt "Nach-Links" u.ä.), außerdem brauche ich die Schleife, wenn ich alle Tasten abfangen möchte, ansonsten muss ich ja mit Hooks arbeiten. Also sind mir Hooks lieber, weil ich damit mehr anfangen kann. Ich muss z.B. sehr wohl zwischen Pfeil- und NUMPAD-Tasten unterscheiden. Aber gu8t fand ich, dass auch Maustasten berücksichtigt werden.