Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Liste der Tastennamen (https://www.delphipraxis.net/9063-liste-der-tastennamen.html)

Die Muhkuh 17. Sep 2003 14:30


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

Robert Marquardt 17. Sep 2003 14:40

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.

Die Muhkuh 17. Sep 2003 14:44

Re: Liste der Tastennamen
 
Nene das mein ich nicht!

Es gibt bestimmt ne Liste(oder vielleicht schreibt sie einer)
Delphi-Quellcode:
#0 = ''
#1 = '1'//Stimmt bestimmt nicht aber so mein ich das
Spider

Robert Marquardt 17. Sep 2003 15:12

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.

CalganX 17. Sep 2003 15:54

Re: Liste der Tastennamen
 
Hi Spider,
Hier im Forum suchenVirtual Keycodes und Virtual KeycodesVirtual Keycodes! Das dürfte das sein, was du suchst. Ansonsten habe ich dich falsch verstanden.

Chris

PS: Die Funktion von Robert ist aber identisch, nur das die VKs Konstante sind.

Alexander 17. Sep 2003 15:59

Re: Liste der Tastennamen
 
ORD() kannst du die Konstante umwandeln.
Du kannst du auch in der Online-Hilfe danach suchen, gleiche Suchbegriffe...

Die Muhkuh 18. Sep 2003 13:49

Re: Liste der Tastennamen
 
THX @Chakotay1308

@all

wie rufe ich nun die Tasten auf???
Delphi-Quellcode:
if VK_A then
...
???


Spider

Phoenix 18. Sep 2003 13:59

Re: Liste der Tastennamen
 
Zitat:

Zitat von Spider
wie rufe ich nun die Tasten auf???

:wiejetzt: Ws meinst Du mit aufrufen?

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.

Die Muhkuh 18. Sep 2003 14:01

Re: Liste der Tastennamen
 
@Phoenix

Das ist genau das was ich gesucht hab!
Delphi-Quellcode:
 if Key = VK_A then
  //mach was

Spider

Robert Marquardt 18. Sep 2003 14:03

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 15:49 Uhr.
Seite 1 von 2  1 2      

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