![]() |
Tastaturbelegung herausfinden (z.b. [Shift] + [5] = "%&
Aloha,
ich suche eine Möglichkeit, für eine bestimmte/alle Taste(n), z.B. $53 (=[5]), herauszufinden, auf welches Zeichen diese gemappt ist, wenn zusätzlich Shift gedrückt wäre. Um das Beispiel aus dem Titel nochmal zu erklären: ich will wissen, welches Zeichen erscheinen würde, wenn der Benutzer SHIFT und "5" drückt, was z.B. auf deutschen Tastaturen ja dem Prozentzeichen "%" entspricht. Wie kann ich das herausfinden? Liebe grüße flo |
Re: Tastaturbelegung herausfinden (z.b. [Shift] + [5] = &
Hallo Florian,
so könntest du prinzipiell vorgehen:
Delphi-Quellcode:
Beachte, dass in den Routinen mögliche Fehlercodes nicht ausgewertet werden.
// uses Windows
// Einsatz z.B. in FormKeyDown() function ShiftedKey (aKey: Word): Char; var KeyState : TKeyboardState; Buffer : array [0..1] of char; Count : Integer; begin ZeroMemory (@KeyState, SizeOf(KeyState)); KeyState[VK_SHIFT] := 128; // Shift-Taste gedrückt ZeroMemory (@Buffer, SizeOf(Buffer)); Count := ToAscii(aKey, MapVirtualKey(aKey, 0), KeyState, @Buffer, 0); if (Count = 1) then Result := Buffer[0] else Result := #0; end; // Einsatz z.B. in FormKeyPress() function ShiftedChar (aChar: Char): Char; begin Result := ShiftedKey(VKKeyScan(aChar)); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Caption := ShiftedKey(Key); end; Gruß Hawkeye |
Re: Tastaturbelegung herausfinden (z.b. [Shift] + [5] = &
Das ist prima, danke dir :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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 by Thomas Breitkreuz