TAP Keyevents
aus TopfWiki, der freien Wissensdatenbank
Tipps & Tricks: Startseite | Alphabetische Liste
In diesem Artikel wird das Handling der Tasten bei der Verwendung von TAPs besprochen. Diese Information ist nützlich, wenn man Probleme mit der Tastenbelegung hat und diese durch die Änderung der Startreihenfolge der TAPs ändern möchte.
Inhaltsverzeichnis |
Grundsätzliches
- Eine Unterscheidung zwischen Originaltasten und TAP-Tasten gibt es nicht.
- Es greifen nie mehrere TAPs auf dieselbe Taste zu.
- Eine Taste wird immer nur von einem TAP angenommen.
- Einen "Tastenkonflikt" zwischen verschiedenen TAPs gibt es eigentlich nicht.
- Es kann höchstens dazu kommen, dass ein TAP eine entsprechende Taste "abfängt" und nicht weitergibt.
Ablauf der Keyevents
Eine Taste wird immer zuerst von den TAPs abgearbeitet und erst zum Schluss - sollten die TAPs diese Taste durchreichen - an die Topfield-Standardfunktionen (Teletext, Menu, ...) weitergeleitet.
Diese folgende Reihenfolge wird immer eingehalten:
- Alle TAPs geben die gedrückte Taste der Reihe nach an das nächste gestartete TAP weiter.
- Nimmt auch das letzte TAP die Taste nicht an und gibt sie weiter, wird die Taste vom Topfield selbst angenommen und das entsprechende Ereignis lt. Topfieldstatus aufgerufen.
Programmiertechnische Sicht
Eine kurze vereinfachte Erklärung, wie es aus programmiertechnischer Sicht aussieht:
Es gibt einen TAP_EventHandler, der ständig durchlaufen wird. In diesem EventHandler wird das Event (in unserem Falle der Tastendruck) an das TAP übergeben. Abhängig vom aktuellen Status nimmt das TAP den Tastendruck entgegen oder gibt das Event weiter (d.h. die Taste wird an das in der TAP-Reihenfolge nächste TAP "durchgereicht").
Das TAP kann das Event (Tastendruck)
- annehmen und das Event zurücksetzen, so dass an das nächste TAP kein Tastendruck weitergegeben wird.
- annehmen und das Event mit gleichem Wert für dieses Event an das nächste TAP weitergeben.
- annehmen und das Event und ein anderen Wert für dieses Event an das nächste TAP weitergeben (d.h. eine andere Taste).
- nicht annehmen und an das nächste TAP lt. TAP-Reihenfolge weitergeben ("durchreichen").
- nicht annehmen und das Event zurücksetzen und nicht durchreichen.
Beispiel 1
3 gestartete TAPs: Taste wird gedrückt.
- Das 1. gestartete TAP nimmt die Taste immer an, weiß, dass es die Taste nicht braucht, weil es nicht aktiv ist und gibt die Taste weiter.
- Das 2. gestartete TAP nimmt die Taste immer an, weiß, dass es die Taste nicht braucht, weil es nicht aktiv ist und gibt die Taste weiter.
- Das 3. gestartete TAP nimmt die Taste immer an, weiß, dass es die Taste nicht braucht, weil es nicht aktiv ist und gibt die Taste weiter.
- Danach nimmt es der Topf an und führt die mit der Taste verbundene Aktion aus.
Beispiel 2
3 gestartete TAPs: Taste wird gedrückt
- Das 1. gestartete TAP nimmt die Taste immer an, weiß, dass es die Taste nicht braucht, weil es nicht aktiv ist und gibt die Taste weiter.
- Das 2. nimmt die Taste immer an, erkennt, dass es aktiv ist und führt die Aktion aus. Die Taste wird nicht weitergereicht.
- Das 3. TAP bekommt von der Taste nichts mehr mit, da das vom TAP_EventHandler gemeldete Event 0 ist.
- Die mit dieser Taste vom Topf verknüpfte Funktion bekommt von der Taste ebenfalls nichts mit.