Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FMX: Gesture auf TNumberBox (https://www.delphipraxis.net/187848-fmx-gesture-auf-tnumberbox.html)

Codehunter 8. Jan 2016 14:50

FMX: Gesture auf TNumberBox
 
Hallo!

Ich habe grad zufällig festgestellt, dass man beim Wischen nach Links und Rechts den Zahlenwert im TNumberBox schnell ändern kann. Das finde ich zwar sehr praktisch, bräuchte aber eine Möglichkeit, ein Ereignis nach Abschluss des schnellen Hoch/Runterzählens auszulösen (zur Datenübernahme). OnChangeTracking kommt aber bei jedem einzelnen "Tick", OnChange kommt gar nicht.

Grüße...

Harry Stahl 8. Jan 2016 17:47

AW: FMX: Gesture auf TNumberBox
 
OnChange wird z.B. ausgelöst bei

* Enter-Taste
* Exit-Event
* Software-Seitige Änderung des Wertes

Ein einfaches Enter sollte also reichen. Ansonsten einen kleinen Button daneben, zum anklicken.

Kleiner Tipp: Auch bei der NumberBox gibt es die ärgerliche Vorsteinstellung von Max=100,
wenn man das nicht ändert, wundert sich der Anwender dann später, dass er die gewünschten Werte nicht eingeben kann.:wink:

himitsu 8. Jan 2016 18:01

AW: FMX: Gesture auf TNumberBox
 
OnChange sollte aber bei jeder Änderung ausgelöst werden, denn dafür ist das ja da.

Somit wäre das ein Bug ... warte mal auf DX25 und kauf die dann den Bugfix.

Harry Stahl 8. Jan 2016 18:18

AW: FMX: Gesture auf TNumberBox
 
Zitat:

Zitat von himitsu (Beitrag 1326438)
OnChange sollte aber bei jeder Änderung ausgelöst werden, denn dafür ist das ja da.

Somit wäre das ein Bug ... warte mal auf DX25 und kauf die dann den Bugfix.

Nein, diesmal ist es kein Bug:wink:

sondern wirklich eine sinnvolle Erweiterung.

"OnchangeTracking" entspricht quasi dem "OnChange" unter VCL. Unter FMX hast Du die Freiheit, eine bestimmte Reaktion erst auszulösen, wenn die Eingabe mit "OnChange" tatsächlich abgeschlossen ist.

Das ist z.B. nützlich, wenn abhängig vom Wert bestimmte andere Dinge aufwendig aktualisiert werden müssen.

Diese Sache hier ist aber eine echte Fehlerquelle für den Programmierer, wenn man Programme von VCL auf FMX umstellt bzw. den Unterschied nicht kennt...

Codehunter 11. Jan 2016 07:33

AW: FMX: Gesture auf TNumberBox
 
In gewisser Weise sehe ich da schon einen Bug. Nämlich in der Kombination aus dem schnellen Hoch-/Runterzählen per Rechts-/Links-Geste und dem Ausbleiben beider Change-Ereignisse. Denn eine Veränderung ist es doch auf jeden Fall, oder?

Dass es unsinnig sein kann, beim schnellen Hochzählen quasi bei jedem "Tick" ein OnChange auszulösen, sehe ich ein. Aber wenn die "Wischzählerei" abgeschlossen ist, sollte schon irgendeine Aktion auslösbar sein.

Der Hintergrund bei mir ist folgender: Ich habe mittig ein TNumberBox angeordnet, links davon einen Dekrementier- und rechts davon einen Inkrementierbutton. Bei einem OnTap auf die Buttons wird gleich ein Save ausgelöst, wie das bei Android so üblich ist. Einen separaten Speichern-Button gibt es nicht. Eher zufällig habe ich bemerkt, dass TNumberBox diese Wischgesten kennt. Erst wollte ich die einfach unterbinden, dann dachte ich, es könnte ganz nützlich sein. Nur passen die im Moment nicht so richtig ins Bedienkonzept.

PS: Danke @Harry für den Hinweis mit dem Max-Property, das hätte ich tatsächlich übersehen und mir damit Probleme eingehandelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz