Probleme mit KeyDown
22. Jul 2004, 09:06
Ich bin gerade dabei ein Programm multilingual zu machen, und habe folgendes Problem :
Jede verschiedene Sprache hat ihre Sonderzeichen, wie z.B. das 'ß' im Deutschen. Und ich will dies mit dem KeyDown Ereignis abfragen.
Wie mache ich das?
procedure TBannerEditor.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited;
if ssShift in Shift then
begin
if key = 48 then KeyChar('=');
if key = 49 then KeyChar('!');
if key = 50 then KeyChar('"');
if key = 51 then KeyChar('§');
if key = 52 then KeyChar('$');
if key = 53 then KeyChar('%');
if key = 54 then KeyChar('&');
if key = 55 then KeyChar('/');
if key = 56 then KeyChar('(');
if key = 57 then KeyChar(')');
if key = 192 then KeyChar('Ö');
if key = 222 then KeyChar('Ä');
if key = 186 then KeyChar('Ü');
if key = 187 then KeyChar('*');
if key = 189 then KeyChar('_');
if key = 191 then KeyChar('''');
if key = 190 then KeyChar(':');
if key = 188 then KeyChar(';');
if key = 226 then KeyChar('>');
if key = 219 then KeyChar('?');
if key = 220 then KeyChar('°');
end
else
begin
if key = 48 then KeyChar('0');
if key = 49 then KeyChar('1');
if key = 50 then KeyChar('2');
if key = 51 then KeyChar('3');
if key = 52 then KeyChar('4');
if key = 53 then KeyChar('5');
if key = 54 then KeyChar('6');
if key = 55 then KeyChar('7');
if key = 56 then KeyChar('8');
if key = 57 then KeyChar('9');
if key = 192 then KeyChar('ö');
if key = 222 then KeyChar('ä');
if key = 186 then KeyChar('ü');
if key = 187 then KeyChar('+');
if key = 189 then KeyChar('-');
if key = 191 then KeyChar('#');
if key = 190 then KeyChar('.');
if key = 188 then KeyChar(',');
if key = 226 then KeyChar('<');
if key = 219 then KeyChar('ß');
if key = 220 then KeyChar('^');
end;
end;
Das funktioniert ja auch wunderbar, nur wenn ich jetzt zum Beispiel das Norwegische 'Eingabegebietschema' habe, und zum Beispiel auf die Taste 'Ä' Drücke, kommt 'Ä' anstatt 'Æ' ....
Wie kann ich das vorher abfragen???
Danke schonmal im vorraus...
Mfg
qoop
|