Thema: Delphi Probleme mit KeyDown

Einzelnen Beitrag anzeigen

qoop

Registriert seit: 21. Jul 2004
Ort: Saarbrücken
2 Beiträge
 
#1

Probleme mit KeyDown

  Alt 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
  Mit Zitat antworten Zitat