Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit KeyDown (https://www.delphipraxis.net/26327-probleme-mit-keydown.html)

qoop 22. Jul 2004 08:06


Probleme mit KeyDown
 
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

sakura 22. Jul 2004 08:09

Re: Probleme mit KeyDown
 
Hi und herzlich willkommen in der :dp:

Setze doch mal die [delphi]-Tags um Deinen Code. Wie es geht? Hier: Unsere FAQ sagts Dir

...:cat:...

fkerber 22. Jul 2004 08:16

Re: Probleme mit KeyDown
 
Hi!

Vielleicht hilft das:
http://www.delphipraxis.net/internal...ct.php?p=68444

Da wird so nebenbei erwähnt, dass man das Tastaturlayout auslesen kann.


Ciao fkerber

qoop 22. Jul 2004 10:55

Re: Probleme mit KeyDown
 
Danke, aber darum geht es mir leider nicht.

Ich will nicht jedesmal abfragen muessen, was es fuer eine Sprache ist, und dann die Sonderzeichen nochmal eingeben.

mfg qoop

fkerber 22. Jul 2004 18:12

Re: Probleme mit KeyDown
 
Hi!

Mal so als bescheidene Frage, was hast du eigentlich überhaupt vor? :zwinker:

Ciao fkerber


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz