Tastencode Ö anders in BCB 2009?
-
Hallo,
ich brauche neben anderen Tastenabfragen in OnKeyDown auch das Ö.
&Key liefert mir aber immer ALT#192 statt ALT#214.Was geht hier schief?
Danke Rudi
-
rudiM schrieb:
Was geht hier schief?
Du behandelst WM_KEYDOWN, obwohl du eigentlich auf WM_CHAR reagieren willst.
-
glaub ich nicht, dass das die Ursache ist.
FormKeyDown( *Sender, WORD &Key, TShiftState Shift ) { switch ( Key ) { case L'A':.................//geht ( alle Zeichen ) case VK_F1:................//geht ( alle VK_*** ) case L'Ö':...........// geht nicht case 192:............// geht mit der Ö-Taste obwohl die Nummer 214 sein müsste } }
Ist da vielleicht eine amerikanische Tastaturbelegung im Spiel? Aber dann müßte doch auch z - y vertauscht sein, ist aber nicht!
Aber hier gehts auch nicht:
FormKeyPress( 'Sender wchar_t &Key ) { switch ( Key ) case L'Ö': }
Dabei kommen zwar auch kleine sowie auch die großen öÖ in Key an, aber switch erkennt keinen einzigen aller Buchstaben.
-
Ich würde darauf Tippen, dass der Fehler daher resultiert, dass du Tastaturcodes mit Characters vergleichst (was funktioniert, solange du mit den "normalen" Zeichen arbeitest). Der Wert von
L'Ö'
hängt von Encoding ab, der Wert der gedrückten Taste (0xc0
) hingegen nicht. Darum wurden dieseVK_
-Codes (für Ö gibt es vermutlich keinen, du musst wohl gegen den Wert als Zahl testen...) doch ursprünglich auch eingeführt. Oder hat diese Methode des Testens fürL'Ö'
früher funktioniert?MfG
-
Ich hab mal meinen BCB5 herausgekramt und befragt: Hier kommt auch die 192, also kein Ö.
Rudi
-
Und was spricht gegen WM_CHAR?
-
1. Den Tastenrepeat kann ich nicht brauchen.
2. Es ist mir schon recht, wenn nicht zwischen Groß- und kleinBuchstaben unterschieden wird.Aber sofern es auf allen Computern gleich ist, kann ich auch mit der 192 leben.
Danke für euere Hilfe.:)
Rudi
-
Vielleicht hilft dir ToUnicode().
-
auch interessant...
Leider habe ich mich geirrt. Auch bei OnKeyDown ist ein Tastenrepeat möglich. Dabei war ich immer der Meinung es funktioniert wie OnMouseDown. Da kann ich wirklich OnKeyPress nehmen und brauch kleinbuchstaben nur in große tauschen.
Diese Disskusion hat sich schon deswegen für mich gelohnt, da ich jetzt weiß, dass ich noch eine Absicherung wegen Keyrepeat einbauen muss.
Gruß Rudi.