![]() |
VK_* in DE und US
Hi,
Wie ich feststellen musste, entsptrechen die VK-*-Codes, welche auf US- und DE-Tastaturen ausgelöst wurden, nicht unbedingt mit der Taste überein. Wenn man also Ü drückt, do wird der VK zu ; ausgelöst, obwohl auf der Taste, auf der beim US-Layout ein ; ist, auf einer DE-Tastatur ein Ö steht.
Delphi-Quellcode:
Für diese Tasten würde ich gerne den Namen der VK_*-Konstante u./o. den Namen der US-Taste wissen. (Bisher arbeite ich, wie man sieht, mit der numerischen Konstante. Das sieht nicht so toll aus.) Für die anderen habe ich es schon selbst herausgefunden ;)
191: S.Hint := '#';
192: S.Hint := 'Ö'; 219: S.Hint := 'ß'; 220: S.Hint := '^'; 221: S.Hint := '´'; 222: S.Hint := 'Ä'; 226: S.Hint := '<'; Mfg FAlter [edit]Ups, das ist doch eher ein Win-API-Thema, oder? :oops: [/edit] [edit]
Delphi-Quellcode:
Stimmen die bei (US: ???) angegebenen Zeichen so? Und was hat < für einen VK?[/edit]
{VK_SLASH} 191: S.Hint := '# (US: /)';
{VK_BACKQUOTE} 192: S.Hint := 'Ö (US: `)'; {VK_LEFTBRACKET} 219: S.Hint := 'ß (US: ()'; {VK_BACKSLASH} 220: S.Hint := '^ (US: \)'; {VK_RIGHTBRACKET} 221: S.Hint := '´ (US: ))'; {VK_QUOTE} 222: S.Hint := 'Ä (US: ´)'; 226: S.Hint := '<'; //VK_????? |
Re: VK_* in DE und US
Hallo,
in der Windows.pas von BDS 2005 (nicht bei Delphi 5) habe ich folgende Codes gefunden:
Code:
Ich habe allerdings nicht geprüft, ob damit alle Codes erschlagen sind. Nach der NET-Dokumentation müsste es noch folgende geben:
VK_OEM_1 = 186;
VK_OEM_PLUS = 187; VK_OEM_COMMA = 188; VK_OEM_MINUS = 189; VK_OEM_PERIOD = 190; VK_OEM_2 = 191; VK_OEM_3 = 192; VK_OEM_4 = 219; VK_OEM_5 = 220; VK_OEM_6 = 221; VK_OEM_7 = 222; VK_OEM_8 = 223; VK_OEM_102 = 226; VK_PACKET = 231; VK_PROCESSKEY = 229;
Code:
Ich hoffe, das hilft Dir weiter. Jürgen
OemOpenBrackets für ß?
Oemtilde für öÖ OemQuestion für #' OemBackslash für <> D1...D9 und D0 für die Zifferntasten (nicht den Numeric-Block, sondern die normalen |
Re: VK_* in DE und US
Hi,
die VK_OEM_* scheint es zumindest unter D7 noch nicht zu geben. Für ß ist es tatsächlich [, und ? liegt in US auf der gleichen Taste wie / (ich möchte die Erstbelegungen, also ohne SHIFT, verwenden), was als VK mit # übereinstimmt. Danke soweit. Bei den anderen Werten komme ich irgendwie nicht zu diesen Ergebnissen, wenn ich das TZastaturlayout umstelle und die genannten Tasten drücke. Ich werde es jezt wohl per Versuchen herausfinden ;) indem ich mein Tastaturlayout umstelle und dann so lange Tasten drücke, bis ich den richtigen VK erwische. Dann kann ich immerhin ablesen, was die richtige Taste wäre. Umständlich, aber wohl der schnellste Weg... Mfg FAlter |
Re: VK_* in DE und US
Die VK_xxx - Konstanten haben nichts mit dem Tastaturlayout zu tun. es sind die virtual KEY-codes, also die Codes für die Taste.
|
Re: VK_* in DE und US
Hi,
aber es gibt Doppelbelegungen, und das ist hier das Problem. Natürlich kommt bei Y nicht bei deutschen Belegungen plötzlich VK_Z (oder Ord('Z')), aber, wie erwähnt, bei Ü und ; stimmen die VK überein. Wenn jemand eine deutsche Tastatur hat, gibt es jedoch keine ; Taste (das ist hier Zweirbelegung der , Taste), dafür jedoch eine O-Taste, welche den selben Tastencode beinhaltet. Ich möchte einfach beide Tasten anzeigen. (Und + (DE) ist mit = (US) identisch - in DE wäre = auf der 0). Hier mein aktuelles Ergebnis der Recherchen und inzwischen auch per Test überprüft ;) :
Delphi-Quellcode:
Mfg
{VK_SLASH} {VK_OEM_2} 191: S.Hint := '# (US: /)';
{VK_BACKQUOTE} {VK_OEM_3} 192: S.Hint := 'Ö (US: `)'; {VK_LEFTBRACKET} {VK_OEM_4} 219: S.Hint := 'ß (US: [)'; {VK_BACKSLASH} {VK_OEM_5} 220: S.Hint := '^ (US: \)'; {VK_RIGHTBRACKET} {VK_OEM_6} 221: S.Hint := '´ (US: ])'; {VK_QUOTE} {VK_OEM_7} 222: S.Hint := 'Ä (US: '')'; {VK_OEM_102} 226: S.Hint := '<'; FAlter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz