Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unit für Virtual Key Codes? (https://www.delphipraxis.net/206482-unit-fuer-virtual-key-codes.html)

PeterPanino 27. Dez 2020 11:16

Delphi-Version: 10.4 Sydney

Unit für Virtual Key Codes?
 
Ich muss immer wieder Virtual Key Codes selbst deklarieren, z.B.:

Delphi-Quellcode:
VK_P = 80;
Hat denn die Delphi Runtime Library keine Unit, in der ALLE Virtual Key Codes (zumindest die Buchstaben-Tasten) deklariert sind?

Delphi.Narium 27. Dez 2020 11:44

AW: Unit für Virtual Key Codes?
 
Schonmal auf die Idee gekommen, sie selbst zu schreiben und dann bei Bedarf ins Uses aufnehmen?
Delphi-Quellcode:
program PascalScriptUnitVK;
var
  i : Integer;
  sl : TStringList;
begin
  sl := TStringList.Create;
  sl.Add('unit VK;');
  sl.Add('interface');
  sl.Add('const');
  for i := Ord('0') to Ord('9') do sl.Add(Format(' VK_%s = %d;',[Chr(i),i]));
  for i := Ord('A') to Ord('Z') do sl.Add(Format(' VK_%s = %d;',[Chr(i),i]));
  for i := Ord('a') to Ord('z') do sl.Add(Format(' VK_%s = %d;',[Chr(i),i]));
  sl.Add('end.');
  sl.SaveToFile('VK.pas');
  sl.Free;
end.
Bei meinem ollen Delphi 7 sind die gesuchten VKs alle in der Unit Windows zu finden, mit Ausnahme der Ziffern und Buchstaben. Im Kommentar steht in der Unit dann direkt dabei, warum sie nicht in der Unit definiert sind ;-)

PeterPanino 27. Dez 2020 11:49

AW: Unit für Virtual Key Codes?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1479905)
Schonmal auf die Idee gekommen, sie selbst zu schreiben

Das zu vermeiden, war ja der Gegenstand meines Postings.

Die Frage war ja: Gibt es (k)eine Standard-Unit für Virtual Key Codes?
Und nicht: Wie kann ich eine Unit für Virtual Key Codes erzeugen?

Trotzdem Danke. Guten Rutsch!:)

mmw 27. Dez 2020 11:51

AW: Unit für Virtual Key Codes?
 
vielleicht hier - System.UITypes -

http://docwiki.embarcadero.com/Libra...s#Virtual_Keys

PeterPanino 27. Dez 2020 12:08

AW: Unit für Virtual Key Codes?
 
Zitat:

Zitat von mmw (Beitrag 1479907)

Ich wundere mich, wieso die Unit
C:\Program Files (x86)\Embarcadero\Studio\21.0\source\rtl\common\Sy stem.UITypes.pas
die ScanCode-Konstanten-Namen nicht standardmäßig definiert:
Delphi-Quellcode:
vkP               = $50; {  80 }
Standard wäre ja: VK_XX

mmw 27. Dez 2020 13:45

AW: Unit für Virtual Key Codes?
 
hallo,

das scheint auch erst seit XE4 so zu sein.

Gruß

PeterPanino 27. Dez 2020 14:07

AW: Unit für Virtual Key Codes?
 
Zitat:

Zitat von mmw (Beitrag 1479913)
hallo,

das scheint auch erst seit XE4 so zu sein.

Gruß

Also ein neuer Standard?

Schönen Sonntag!

himitsu 27. Dez 2020 14:39

AW: Unit für Virtual Key Codes?
 
Weil diese Konstanten nur ein Import sind und schon beim Hersteller Microsoft wurden die "Buchstaben" auch nicht definiert, sondern nur als Kommentar erwähnt, dass man sie über einen Cast einfach bekommt, z.B.
Delphi-Quellcode:
Ord('P')
.
Delphi-Quellcode:
  VK_DELETE = vkDelete; {46}
  VK_HELP = vkHelp; {47}
{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
  VK_LWIN = vkLWin; {91}
  VK_RWIN = vkRWin; {92}

Seit wann es diese kurzen Delphi-vkXyz gegenüber den Windows VK_XYZ gibt, kann ich grad nicht sagen,
aber ich vermute das ist gekommen, seitdem/nachdem Delphi nicht mehr nur für Windows kompilieren kann, wo die Windows.pas dann natürlich nicht verwendet werden kann/darf.

PeterPanino 27. Dez 2020 16:23

AW: Unit für Virtual Key Codes?
 
Denke, ich werde mich umgewöhnen und die System.UITypes verwenden.

Gutes neues Jahr an alle!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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