Ich habe einen Anwender, der mit slowenischem Tastaturlayout unter
Windows arbeitet. Der hat nun festgestellt, dass mein Programm nicht
tut, was man erwarten würde.

Er drückt z. B. die Taste "Ü" auf seiner Tastatur und erwartet ein
"š". Bei mir unter Mac OS erhalte ich das auch. Im KeyDown-Event
konnte ich feststellen, dass Key (unter Windows) den ASCII-Wert 97 hat.
Das entspricht "a". Unter Mac OS bekomme ich den korrekten ASCII-Wert
353 für Key im Debuger angezeigt.

Wieso verhält sich ein TextArea unter Windows anders als unter Mac OS?
Vor allem, wie erreiche ich, dass unter Windows ebenfalls 353 also "š"
geliefert wird?

Ich habe unter Windows testweise mal auf slowenisches Tastaturlayout
umgestellt und sehe dieses Fehlverhalten nur in meiner Anwendung. In
Wordpad wird das richtige Zeichen ausgegeben.

Komisch ist das Ganze, weil ich im KeyDown-Event ein automatisches
Vervollständigen realisiert habe. Das funktioniert natürlich nicht,
wenn ich auf ein falsches Zeichen prüfe.
Gebe ich das Zeichen ("Ü" auf deutscher Tastatur mit slowenischen
Tastatur-/Ländereinstellungen) hingegen in ein TextArea ohne
automatisches Vervollständigen ein, wird das richtige Zeichen
ausgegeben. Im KeyDown-Event ist aber dennoch der falsche Wert für das
eingegebene Zeichen angegeben :-(

Ich gebe also unter Windows ein "š" ein, erhalte im KeyDown-Event ein
"a" übergeben und dennoch wird das korrekte "š" ausgegeben.

Hat jemand eine Lösung dazu?

MfG, Metti.

Antwort per Email an