Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi FMX: Button in Scrollbox funtioniert erst bei zweitem Berühren (https://www.delphipraxis.net/180603-fmx-button-scrollbox-funtioniert-erst-bei-zweitem-beruehren.html)

Rene2 2. Jun 2014 16:21

FMX: Button in Scrollbox funtioniert erst bei zweitem Berühren
 
In einem mobilen FireMonkey Fenster habe ich eine ScrollBox in der ich auf einem Panel angeordnete TrackBars und Buttons nutze. Unter Android (Galaxy S2) beobachte ich folgendes Phänomen: Habe ich einen TrackBar verschoben durch Streichen über den Handy-Bildschirm, und berühre danach einen Button, reagiert dieser nur mit kurzem Blauwerden, aber die Routine ButtonClick wird nicht ausgeführt. Beim zweiten Berühren reagiert er dann richtig. Das gleiche Phänomen beobachte ich auch, wenn man irgendwoanders über die Scrollbox gestrichen hat.

Ich habe bereits herausgefunden: wenn ich bei InteractiveGesture das igPan abschalte (Häkchen weg), dann reagiert der Button beim ersten Berühren. Das hilft aber nicht weiter, weil man dann die ScrollBox nicht mehr durch Streichen scrollen kann.

Weiss jemand, wie man aus dem Dilemma herauskommt? Vielen Dank schonmal im Voraus...

Rene2 3. Jun 2014 15:26

AW: FMX: Button in Scrollbox funtioniert erst bei zweitem Berühren
 
Ich habe heute noch weitere Test gemacht. Dazu habe ich ein Panel in eine leere mobile-FireMonkey Anwendung gelegt und auf das Panel einen Button. Man kann dan Button auf einem Android-Gerät ganz normal bedienen, solange keine interaktive Geste des Panels genutzt wird. Schalte ich interaktive Gesten ein (setzen der Häkchen unter Touch -> InteractiveGestures), dann kann ich z.B. igLongTap und igDoubleTap problemlos verwenden, ohne dass der Button beeinflusst wird. Verwende ich igPan, dann muss ich den Button zweimal berühren, um das Ereignis ButtonClick auszulösen. Verwende ich igRotate, dann lässt sich der Button garnicht mehr bedienen, bis ich eine andere Geste auf dem Panel ausgelöst habe.

Man könnte alternativ auch das Ereignis MouseDown verwenden. Hier ist das Verhalten wie folgt:
- Nach einem igPan wird beim ersten Berühren nur ein MouseDown-Ereignis ausgelöst.
- Nach einem igRotate wird weder MouseDown noch ButtonClick ausgelöst.
- Nach anderen Gesten wird erst MouseDown und dann ButtonClick ausgelöst.

Einen Hinweis auf ähnliche Beobachtungen habe ich auch hier gefunden.

Die Probleme treten anscheinend bei Verwendung von Gesten mit dem GesturesManager nicht auf. Das sind aber wieder andere Gesten...

Wäre super wenn jemand wüsste, wie man mit interaktiven Gesten und Buttons gleichzeitig umgeht, so dass es für plattformunabhängigen Gebrauch sicher programmiert ist.

Rene2 3. Jun 2014 16:10

AW: FMX: Button in Scrollbox funtioniert erst bei zweitem Berühren
 
Jetzt habe ich sogar eine entsprechende Fehlermeldungen an Embarcadero gefunden.

http://qc.embarcadero.com/wc/qcmain.aspx?d=120888

http://qc.embarcadero.com/wc/qcmain.aspx?d=120222 (Punkt 3)

Ich arbeite mit XE5 in der Fehlerkorrespondenz bei Embarcadero steht, dass der Fehler bei XE6 behoben sei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 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