AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VK_* in DE und US

Ein Thema von FAlter · begonnen am 30. Jul 2007 · letzter Beitrag vom 30. Jul 2007
Antwort Antwort
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

VK_* in DE und US

  Alt 30. Jul 2007, 13:30
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:
191: S.Hint := '#';
192: S.Hint := 'Ö';
219: S.Hint := 'ß';
220: S.Hint := '^';
221: S.Hint := '´';
222: S.Hint := 'Ä';
226: S.Hint := '<';
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

Mfg
FAlter

[edit]Ups, das ist doch eher ein Win-API-Thema, oder? [/edit]

[edit]
Delphi-Quellcode:
{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_?????
Stimmen die bei (US: ???) angegebenen Zeichen so? Und was hat < für einen VK?[/edit]
Felix Alter
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#2

Re: VK_* in DE und US

  Alt 30. Jul 2007, 13:52
Hallo,

in der Windows.pas von BDS 2005 (nicht bei Delphi 5) habe ich folgende Codes gefunden:
Code:
  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;
Ich habe allerdings nicht geprüft, ob damit alle Codes erschlagen sind. Nach der NET-Dokumentation müsste es noch folgende geben:
Code:
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
Ich hoffe, das hilft Dir weiter. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#3

Re: VK_* in DE und US

  Alt 30. Jul 2007, 14:15
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
Felix Alter
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: VK_* in DE und US

  Alt 30. Jul 2007, 14:22
Die VK_xxx - Konstanten haben nichts mit dem Tastaturlayout zu tun. es sind die virtual KEY-codes, also die Codes für die Taste.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#5

Re: VK_* in DE und US

  Alt 30. Jul 2007, 14:29
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:
{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 := '<';
Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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