|
ACSpro
Einführung in ACSpro
ACSpro verwendet die länderunabhängigen
Tastencodes, die mit den etablierten NKCC-Routinen von Harald Siegmund
in der Überarbeitung von Christian Felsch erzeugt werden —
das frühere Flag AO_SCANCODE ist also nichtig und wird auch nicht
mehr unterstützt!
Harald Siegmund schreibt dazu in seiner Dokumentation zu NKCC
NKCC ist ein NME-Produkt (Not macht erfinderisch), das bei dem
verzweifelten Versuch entstanden ist, eine flexible und
länderunabhängige Tastenmakroverwaltung zu schreiben.
Vorgabe war, möglichst alle Kombinationen von Shift
(links/rechts), Control und Alternate mit einer anderen Taste erfassen
zu können, unabhängig davon, ob die Applikation auf einem
deutschen, saudi-arabischen, isländischen oder Wasauchimmer-TOS
mit entsprechender Tastenbelegung läuft.
Kein Problem? Von wegen! Wenn man sich die von TOS/GEM
zurückgelieferten Tastencodes anschaut, kann einem das kalte
Grauen kommen:
a) | Alternate plus eine Buchstabentaste liefert lediglich den
Scancode des Taste zurück, der von der Belegung der Tastatur
(Landessprache!) abhängt. Als ASCII-Code meldet das OS immer eine
0.
|
b) | Bei einigen Tasten variiert der Scancode abhängig davon,
welche Zusatztasten gedrückt sind! Ein Beispiel: auf der
deutschen Tastatur hat die Taste "1 !" den Scancode 2. Wird
zusätzlich Alternate gedrückt, ändert sich der Scancode
zu $78 und als ASCII-Code erhältman eine Null.
|
c) | Der Cursortastenblock ist eine einzige Katastrophe. Hier kann
man nur darauf hoffen, daß auf allen Tastaturen die gleichen
Scancodes geliefert werden. Bei einigen Tasten — nicht allen
— ändert sich der Scancode, wenn zusätzlich Control
gedrückt wird! Der ASCII-Code hängt vom Zustand der
Zusatztasten (Shift, Control) sowie der aktuellen Mondphase ab und
spottet jeder Regel.
|
d) | Einige Tastenkombinationen lassen sich so ohne weiteres gar
nicht auseinanderhalten, da sie den gleichen Tastencode produzieren.
So sind in den meisten Fällen die Tastencodes für
Alternate+irgendeine Taste identisch mit Alternate+Shift+irgendeine
Taste.
|
Die Lösung für all diese Probleme heißt NKCC. Ok,
nicht ganz so dramatisch: Eine Lösung für all diese
Probleme heißt NKCC. ;-)
Die Hauptaufgabe von NKCC liegt in der Konvertierung von
Tastencodes in ein sinnvolles, vom Scancode und damit von der
Landessprache unabhängiges Format, die NKCC-Tastencodes. Mit NKCC
können praktisch alle Tastenkombinationen unterschieden werden.
Ausnahmen bilden lediglich jene Kombinationen, die zu Sonderzwecken im
Betriebssystem eingesetzt werden (zum Bleistift das altbekannte
Alternate+Help, das die Hardcopy-Routine des Systems anwirft).
Hinweis: Eine ausführliche Dokumentation zu NKCC und
den NKCC-Tastencodes befindet sich in der mit ACSpro
mitgelieferten Datei 'NKCC.DOC' — einige Anmerkungen und
technische Details hierzu:
- ACSpro setzt die GEM-Library von NKCC nicht ein,
sondern übersetzt 'nur' die normalen Codes der Event-Schleife in
die NKCC-Codes; ein Dead-Key-Handling, ButtonEventHandler etc. ist
also mit NKCC nicht möglich. Ab Version V3.0.0 von ACSpro
ist daher ein Dead-Key-Handling in ACSpro selbst realisiert
worden.
- Leider stehen die Routinen aus der NKCC-Library aufgrund der
Längenbeschränkung auf acht Zeichen nicht den
Pascal-Anwendern zur Verfügung!
Hinweis: Die von ACSpro verwendete Version der
NKCC-Bibliotheken steht zusammen mit ACSpro zur Verfügung. Da
die von ACSpro benötigten NKCC-Routinen bereits in die
ACSpro-Bibliothek gelinkt wurden, wird die NKCC-Bibliothek
selbst nicht mehr benötigt.
Copyright © Martin Elsässer (E-Mailadressen)
Letzte Aktualisierung am 25. März 2008
|