Virtuelle Tastencodes und char?
-
Wie kann ich die Virtuellen Tastencodes zu char konvertieren?
-
Ich würde mal sagen, dass das nicht geht. Also ich denke jetzt mal, dass du
das "VK_BLA" in einen Char konvertieren willst, oder meinste was anderes?
Jedenfalls geht das glaube ich nicht, da das ja auch bloß Ziffern sind...
Eine Variante wäre aber, das über viele If-Anweisungen zu machen...Mfg Aoeke
-
hmm, is ja doof *g*
-
Naja du musst den Unterschied zwischen Tastatureingaben(nämlich der VK kram) und Buchstabentabellen(ASCII) sehen.
Das ist im Prinzip wie Äpfel und Birnen.Aber wenn du mal
ShowMessage((int)VK_A);
ShowMessage((int)'a');
ShowMessage((int)'A');ausführst sollte dir eigentlich was auffallen
-
ja, des is wohl wahr *g*, er kompiliert es garnicht erst *g*
[ Dieser Beitrag wurde am 24.06.2003 um 16:07 Uhr von Spieleprogrammierer editiert. ]
-
gut erkannt
und woher bekommst du dann an deine VKeys ?
-
Naja, also deins würde gehen, wenn du ShowMessage(IntToStr((int)VK_LEFT)); machst, ansonsten ist es ja ein anderer Datentyp, WORD, aber es muss doch gehen, es zu char zu konvertieren. Oder zu Int, oder String, k.a.
-
also da sollten keine Probleme sein...
weil
typedef unsigned short WORD;du brauchst noch nichtmal den cast:
ShowMessage(VK_LEFT); geht genausoNur du kannst genausowenig f1 wie die windowstaste in einen char konvertieren, ich bin eigentlich davon ausgegangen das du VK_A, VK_9 usw konvertieren wolltest und falls das der Fall ist woher du die vk´s bekommst.
-
Muss es denn performant sein ?
Du könntest eine std::map<unsigned short,std::string> nehmen und Dir dort eine Tabelle aufbauen. (Eine Klasse die das z.B. im Konstruktor erledigt).
Dann kannst Du mit
std::map<unsigned short,std::string> myKeyMap;
myKeyMap[KeyCode]
den Stríng auslesen. (Wenn Du z.B. bei einer Konfigurationsseite eines Spieles einen Text hinschreiben willst, Arrow Left oder so)
-
da wäre ein array wohl besser geeignet
-
Ach was, ne, ich weiß schon, ich nehm einfach irgendwo das Ereignis onKexDown, nehm nen paar if-Bedingungen und dann geht das schon irgendwie *g* Aber danke für eure Hilfe.
MfG Nico
-
Original erstellt von <
>:
da wäre ein array wohl besser geeignetJo stimmt, der key is ja ushort. Ok ok , wenn die Zahlen denn alle brav hintereinander liegen bietet sich vector besser an als map O
-
warum vector? muss das array etwa dynamisch sein?
-
Also soweit ich weiß, gibt's nu eine bestimmte Anzahl an Virtuellen Codes, also kein vector, Array ist schon ganz gut.
-
Ja die Idee mit dem array bzw. Vector basiert auf folgendem:
vectorstd::string Keys;
// Auffüllen ALLER Codes von 0 bis x
Nun bekommst Du die Taste x
Kurz: Die Taste soll als Index verwendet werden.
Hast Du nun aber nur ein paar dingens drinne, kannst Du sie nicht mehr als index verwenden. (Hier greift dann die map wegen find und suchbaum).
Also: Array macht nur sinn wenn Du alle durchgehende Zeichen speicherst mit einem Ersatzstring.
Der Einsatz von vectorstd::string macht Dir aber das Leben noch einfacher weil Du einen operator[] hast und dich um die speicherverwaltung nicht kümmern musst.
-
lol
-
omfg ihr seid doch alles Trolle er will doch nur wissen was für Ascii Werte die einzelnen Tastatur Eingaben ... haben ...
std::map .. Showmessage ... omg setzt die Drogen ab !!!
-
sagen wir mal die Eingabe ist: VK_RETURN
Was willst du dann für eine Ausgabe haben? "Return" als String oder wie?
-
Original erstellt von 1ntrud0r:
**omfg ihr seid doch alles Trolle er will doch nur wissen was für Ascii Werte die einzelnen Tastatur Eingaben ... haben ...
**Es macht den Eindruck als möchte Spieleprogr. einen String zu der Taste die gerdrückt wurde haben. Was spricht denn da gegen ein Array oder einem set ?
Welchen ASCII Wert hat denn Einf Pos1 Bild Auf Bild AB STRG Pfeil rechts etc. den man dann anzeigen könnte ?
-
Original erstellt von <omg>:
Was willst du dann für eine Ausgabe haben? "Return" als String oder wie?Nein, den ASCII-Wert.
[ Dieser Beitrag wurde am 25.06.2003 um 14:33 Uhr von Jansen editiert. ]