Tastennamen in Systemsprache

Antworten
Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Tastennamen in Systemsprache

Beitrag von Komoluna »

Hey,

Ich brauche den Namen einer Taste als String in der eingestellten Systemsprache.
Die Keys habe ich als VKC(VirtualKeyCode) vorliegen. Gibt es da irgendeine Methode in Windows oder der LCL?
(3rd Party Package/Unit wäre auch ok. Da das Projekt privat ist, sind Lizenzen mehr oder weniger egal)

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tastennamen in Systemsprache

Beitrag von Mathias »

Verstehe ich dich richtig, du willst die Tasten-Namen welche in der Unit LCLType als String haben ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Tastennamen in Systemsprache

Beitrag von Komoluna »

Beispiele:

Code: Alles auswählen

Keyname   : Ger       / Eng
----------------------------------------
VK_Space  : Leertaste / Space
VK_Delete : Löschen   / Delete
VK_Control: Steuerung / Control

Aber halt wenn möglich in der Systemsprache
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tastennamen in Systemsprache

Beitrag von Mathias »

Diese Funktion wird auch bei Games-Programmierer gebraucht, für die Benutzerdefinierten-Tastenzuweisungen.
Vielleicht wirst da bei einer Games-Packages fündig.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Tastennamen in Systemsprache

Beitrag von Komoluna »

ok, danke für den Tipp.
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Tastennamen in Systemsprache

Beitrag von MAC »

Gibt es "GetKeyNameText" , hier einfach mal den Code den ich verwende

Code: Alles auswählen

function GenerateText(aKey: Word): string;
var
 astr:string;
 ac:PChar;
 ScanCode: cardinal;
begin
result := '';
astr := '';
ScanCode := (MapVirtualKey(byte(akey), 0) shl 16);
if ScanCode <> 0 then
   begin
   setlength(astr,255);
   GetKeyNameText(ScanCode,@astr[1], length(astr));
   ac := PChar(astr);
   result += ac;
   end;
end;     

Code: Alles auswählen

Signatur := nil;

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Tastennamen in Systemsprache

Beitrag von diogenes »

Gibt's das auch in plattformunabängig?
Wo stehen die Funktionen, insbesondere MapVirtualKey und GetKeyNameText?
Ceterum censeo computatores per Pascal docendos esse.

Antworten