Dokumentation zum Modul KeyConversion ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ von Christian Stiens 25.07.90 Dies ist die Umsetzung von Bryce Nesbitt's "C"-Funktion DeadKeyConvert von der Fish-Disk 138. Wenn man ein Window öffnet und daraus die Tastatur abfragen möchte, hat man grundsätzlich zwei Möglichkeiten, die RawKey- und die Vanilla-Key Messages, wobei ein Window nur eine der beiden Arten von Messages senden kann, nicht beide gleichzeitig. Die RawKey-Message liefert Information über die Position der gedrückten Taste, nicht aber den ASCII-Code. Damit lassen sich sämtliche Tasten der Tastatur abfragen, es wird dabei auch zwischen dem Drücken und dem Loslassen der Taste unterschieden. Die RawKey-Message eignet sich z.B. bestens zur Simulation einer Klaviatur. Die VanillaKey-Message dagegen liefert den ASCII-Code der gedrückten Taste. dabei wird der durch den SetMap-Befehl eingestellte Tastaturtreiber beachtet. Diese Art der Message eignet sich also für die Eingabe von Texten. Es lassen sich jedoch nur diejenigen Tasten abfragen, die einen ASCII-Code besitzen. Darunter fallen nicht die Cursor-Tasten, die Funktionstasten, die Qualifiertasten (Shift, Control, Alt, ...) und die Help-Taste. Wenn man nun z.B. einen Editor programmieren möchte, kann man aber auf diese Tasten kaum verzichten. Die Lösung des Problems besteht darin, daß man die RawKey-Messages selber in VanillaKey-Codes umwandelt. Das Console-Device bietet für diesen Zweck die Funktion "RawKeyConvert" an. Diese benötigt als Übergabeparameter aber keine Message, sondern den Zeiger auf eine InputEvent-Struktur. Die Prozedur "DeadKeyConvert" übernimmt nun die Aufgabe, eine passende InputEvent-Struktur zu erzeugen, um dann RawKeyConvert aufzurufen. Um das Öffen und Schließen des Console-Devices braucht man sich nicht zu kümmern, dies wird von dem Modul automatisch erledigt. - Chris -