Einzelnen Beitrag anzeigen

Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

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

  Alt 5. Apr 2011, 12:40
Delphi-Version: 6
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!
  Mit Zitat antworten Zitat