Perl Maus Events über ANSI-Escapesequenzen auslesen
bearbeitet von
Hallo Rolf B!
Vielen Dank für die Idee, dass man die Modi erstmal umschalten müsste.
Sogleich habe ich dafür auch eine ANSI-Escapesequenz gefunden [^1].
Nun arbeite ich weiter.
Ich wollte eine Eingabe machen, die genau 6 Zeichen lang ist, weil das Terminal die Maus-Events mit einer Länge von 6 Zeichen absendet. Die 6 Zeichen bedeuten:
1. Das Escapezeichen (`^[`)
2. Das Zeichen danach, was irgendeine Funktion aufruft (`[`)
3. Ein Zeichen, um die Funktion zu definieren (in diesem Fall, sonst ist dieses Zeichen ja immer __nach__ den Parametern) (`M`)
4. Ein Zeichen, was die Maustaste bestimmt (das Zeichen muss im ASCII-Standard minus 32 gerechnet werden, beispielsweise ` ` = 32 - 32 = 0). Für den Fall, dass die Maustaste nicht 0 entspricht, wird alles übersprungen. Damit habe ich den Fehler behoben, dass ich bei einem Klick auf eine Zahl die Zahl zweimal verwendet wird (MouseUp & MouseDown).
5. Ein Zeichen, was die X-Koordinate bestimmt (für weitere Informationen über den ASCII-Zeichensatz siehe Punkt 4). Dort wäre dann `"` eine 2. (`"` = 34 - 32 = 2)
6. Ein Zeichen, was die Y-Koordinate bestimmt (für weitere Informationen über den ASCII-Zeichensatz siehe Punkt 4). Dort wäre dann `(` eine 8. (`"` = 34 - 32 = 2)
Die Kombination aus einer 2 und einer 8 wäre der Button 1 bei folgendem Display:
~~~
TASCHENRECHNER
==============
+---------------+
| |
| |
+---+---+---+---+
| 1 | 2 | 3 | + |
+---+---+---+---+
| 4 | 5 | 6 | - |
+---+---+---+---+
| 7 | 8 | 9 | * |
+---+---+---+---+
| . | 0 | = | / |
+---+---+---+---+
| BEENDEN |
+---------------+
2022 von Samuel Fiedler
~~~
Au revoir,
Samuel Fiedler
[^1]: Irgendwie finde ich ANSI-Escapesequenzen toll.