Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi KeyDown . , - (Punkt, Komma, Strich) + Großbuchstaben (https://www.delphipraxis.net/159611-keydown-punkt-komma-strich-grossbuchstaben.html)

Delphi-Narr 5. Apr 2011 13:40

Delphi-Version: 6

KeyDown . , - (Punkt, Komma, Strich) + Großbuchstaben
 
Hallo,

ich erstelle mir ein Programm, welches je nach Tastendruck eine vordefinierte Funktion ausführen soll.
Deshalb ist in einer Datei jeder Taste eine Nummer zugeordnet.

Also z.B.

Code:
Q=1
A=8
,=10
.=12
-=19
Diese Liste wird dann beim Starten des Programms in eine Stringlist eingelesen und im OnKeyDown Ereignis soll dann
je nach Taste eine Variable X auf den Wert gesetzt werden, der der Taste zugeordnet ist:

Delphi-Quellcode:
for i:=0 to SL.Count-1 do
     begin
          if Key=Ord(SL[i][1]) then
                X:=StrToInt(SL.Values[SL.Names[i]]);
     end;
Dabei ergeben sich zwei Probleme: Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, es wird standardmäßig ein Großbuchstabe verwendet. Also wenn in der Liste steht "a=1" passiert nichts. Später soll jedoch auch zwischen Groß- und Kleinschreibung unterschieden werden, in der Liste soll auch stehen können:

Code:
a=2
A=55
Muss ich da den Shiftstate abfragen oder kann mir das Ereignis das auch selbst ausgeben?

Das zweite Problem ist, dass bei Punkt, Komma und Strich die Werte 188, 189 und 190 (¼ ½ ¾) verwendet werden, was sich jedoch nicht mit , . - (Was bei mir 44, 45, 46 ist) vergleichen lässt.
Wie kann ich diese Problem lösen?

Viele Grüße!

DeddyH 5. Apr 2011 14:01

AW: KeyDown . , - (Punkt, Komma, Strich) + Großbuchstaben
 
Hast Du es einmal im OnKeyPress versucht? Dort ist Key nämlich vom Typ Char und bezeichnet keinen virtuellen Tastencode wie im OnKeyDown.

Delphi-Narr 6. Apr 2011 10:18

AW: KeyDown . , - (Punkt, Komma, Strich) + Großbuchstaben
 
Das klappt, danke :)
Ich hatte das in KeyDown gepackt, weil sich das KeyPress Ereignis ja wiederholt...

Viele Grüße!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf