![]() |
Liste der Tastennamen
hi Leute ich hätt mal gern gewusst wie die einzelnen Tasten auf der Tastatur in Delphi heißen!
Ich was nur das #0 nix ist. Spider |
Re: Liste der Tastennamen
Hier mal ein Aufruf aus einer meiner Komponenten.
GetKeyNameText(VCode shl 16, Buffer, SizeOf(Buffer)); Dies ist eine Win32-Funktion die zum virtuellen Tastencode den lokalisierten Namen liefert. Denk daran es Kleinbuchstaben usw dabei nicht gibt. Es ist der Name der physischen Taste. Die Funktion ist in einer laenderspezifischen DLL von Windows implementiert. Ich habe bemerkt das die Win98-Implementation besser als die Win 2000-Implementation ist. Win 98 liefert korrekt 'Ü', waehrend Win 2000 'ü' liefert. eines der vielen Zeichen das Win 2000 schlampig implementiert wurde. |
Re: Liste der Tastennamen
Nene das mein ich nicht!
Es gibt bestimmt ne Liste(oder vielleicht schreibt sie einer)
Delphi-Quellcode:
Spider
#0 = ''
#1 = '1'//Stimmt bestimmt nicht aber so mein ich das |
Re: Liste der Tastennamen
Doch das meinst du :-)
Andere Tastennamen gibt es nicht. Die Liste kannst du dir ja selber erstellen. Die Funktion kennst du ja jetzt. Falls du die Namne der ASCII-Zeichen meinst, das ist etwas voellig anderes. |
Re: Liste der Tastennamen
Hi Spider,
![]() ![]() Chris PS: Die Funktion von Robert ist aber identisch, nur das die VKs Konstante sind. |
Re: Liste der Tastennamen
ORD() kannst du die Konstante umwandeln.
Du kannst du auch in der Online-Hilfe danach suchen, gleiche Suchbegriffe... |
Re: Liste der Tastennamen
THX @Chakotay1308
@all wie rufe ich nun die Tasten auf???
Delphi-Quellcode:
???
if VK_A then
... Spider |
Re: Liste der Tastennamen
Zitat:
Die meisten Events, die bei Tastendruck aufgerufen werden (z.B. OnKeyPress) liefern den Parameter Key mit. Du kannst dann mit if key = VK... abfragen welche Taste gedrückt wurde. |
Re: Liste der Tastennamen
@Phoenix
Das ist genau das was ich gesucht hab!
Delphi-Quellcode:
if Key = VK_A then
//mach was Spider |
Re: Liste der Tastennamen
So langsam verstehe ich endlich die Frage (die Signatur hilft).
Von Windows kommen "virtuelle" Tastencodes. Das bedeutet das die Tastencodes sprachunabhaengig sind und die gedrueckte Taste bedeuten. Es gibt also kein 'a' sondern nur ein 'A', da es ja keine Taste fuer ein kleines A gibt. WM_KEYDOWN uebermittelt so einen Tastencode. Wenn dein Programm intern TranslateMessages aufruft, so werden die WM_KEYDOWNs und WM_KEYUPs interpretiert und WM_CHAR generiert. Dort ist dann ein Buchstabe vorhanden. Die virtuellen Tastencodes sind in Windows.pas mit dem Praefix VK_ als Konstanten vorhanden. Fuer die einfachen Tasten wie A, B, C etc gibt es keine Konstanten, da der Wert dem ASCII-Zeichen entspricht. Ein (nicht vorhandenes) VK_A hat also den Wert Ord('A'). if Code = VK_UP then fragt also ob die Pfeil-nach-oben-Taste gedrueckt wurde. Deine urspruengliche Frage wollte den Namen der Taste wissen. Das ist aber etwas ganz anderes. Was du wissen wolltest ist der Wert der Taste. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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