Moin,
>Vermutlich geht es am besten, wenn die Zahlen bei Anhaltendendem
>Tastendruck immer schneller laufen, aber wie macht man sowas
>ordentlich ?
Deine Idee ist genau das, was häufig in Textanzeigen bzw. Operator
Panels von SPSen zu finden ist. Dein Code dürfte eigentlich nicht so
schnell so groß werden. Eine üblich Lösung ist, dass immer nach einem
Wechsel von 9->0 bzw. 0->9 bei aufwärts- oder abwärtslaufender
Verstellung der "Cursor" eine Dezimalstelle höher springt und die
Zählung beschleunigt. Allerdings sollte dabei die jeweilige Zahl nicht
schneller als 200...500ms wechseln, damit man (größere oder ältere
Menschen haben längere Reaktionszeiten) schnell genug anhalten kann.
Mit losgelassener Taste bleibt die Verstellung zunächst in der
jeweiligen Stelle und springt erst nach ca. 3 sec eine Dezimalstelle
zurück.
Ein Beispiel:
Dein Wert steht auf 0 und du willst 5207 eingeben, die
Autoinkrementzeit ist 500ms.
Taste "aufwärts" drücken und halten:
Dein Zähler läuft nach oben von 0-->9 (10*0,5s),
springt dann auf die Zehnerstelle 10-->90 (10*0,4s)
springt dann auf die Hunderterstelle 100-->900 (10*0,3s)
springt dann auf die Tausenderstelle 1000-->5000 (4*0,2s)
3s warten, dann mit der Taste von 5000 auf 5200 inkrementieren,
3s warten,
3s warten, dann mit der Taste von 5200 auf 5207 inkrementieren
und die "Enter-Taste" drücken.
Gesamtzeit etwa 25...27s ...
Eine andere Variante wäre, dass Du mit der "ENTER"-Taste bei kurzem
Tastendruck die Stelle wechselst, die Du mit der Zifferntaste
verstellen kannst (Cursor der Anzeige müsste dann mit wechseln können).
Erst wenn die ENTER-Taste ca. 3s lang gedrückt wird, würde der Wert
übernommen.
Bei Eingabe von 5207 würde das ca. 10..12s dauern.
Ggf, könnte ich beides auf einem Butterfly als Demo realisieren, wenn
es was helfen sollte :-) ...