![]() |
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:
Diese Liste wird dann beim Starten des Programms in eine Stringlist eingelesen und im OnKeyDown Ereignis soll dann
Q=1
A=8 ,=10 .=12 -=19 je nach Taste eine Variable X auf den Wert gesetzt werden, der der Taste zugeordnet ist:
Delphi-Quellcode:
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:
for i:=0 to SL.Count-1 do
begin if Key=Ord(SL[i][1]) then X:=StrToInt(SL.Values[SL.Names[i]]); end;
Code:
Muss ich da den Shiftstate abfragen oder kann mir das Ereignis das auch selbst ausgeben?
a=2
A=55 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! |
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.
|
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 11:12 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