AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS9 Erkennen ob Maus (Touch) ist gedrückt
Thema durchsuchen
Ansicht
Themen-Optionen

iOS9 Erkennen ob Maus (Touch) ist gedrückt

Ein Thema von Rollo62 · begonnen am 16. Dez 2015 · letzter Beitrag vom 17. Dez 2015
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#1

iOS9 Erkennen ob Maus (Touch) ist gedrückt

  Alt 16. Dez 2015, 16:01
Hallo zusammen,

ich habe im Moment ein Problem mit MouseEvents,
welche doppelte, mehrfache OnMouseUp Events feuert bei einen kontinuierlichem Ziehen mit dem Finger auf einem Image.

Dehalb möchte ich Folgendes versuchen:

- im OnMouseUp Event checken ob noch ein Touch drauf ist oder nicht,
in der Hoffnung das dann wieder synchron zu bekommen.

Wohlgemerkt: unter Android, OSX, Win32 läuft alles prima mit den Events, nur iOS9 zickt wie üblich.

Ich sehe in den Fmx Soucen das die MouseUp/Move/Down Events aus den touchesBegan, touchesMove etc. von iOS
generiert werden.
Dabei werden wohl an vershciedenen Stellen MouseUp gefeuert (z.B. habe ich den OnLongTap als Übeltäter im Verdacht).

Wie auch immer:

Ich möchte versuchen de momentane Anzahl an Touches (ein Finger der sich wie eine mbLeft Mouse verhalten soll)
auszulesen, also wie eine Art "IsMousePressed" auf dem Phone.

Dazu habe ich gefunden wie man Tasten unter MacApi abfragt, leider gibt es das nicht unter iOS

http://stackoverflow.com/questions/1...-in-firemonkey
https://developer.apple.com/library/...occ/cl/NSEvent
http://codeverge.com/embarcadero.del...de-for/1040349


So werden die Touches unter iOS behandelt.
https://developer.apple.com/library/...ackground.html
http://www.cromis.net/blog/2014/02/t...or-delphi-xe5/

Hat vielleicht jemand eine Idee wie ein "IsMousePressed" oder "GetTouchesCount" schnell und einfach abzufragen wäre, als Workaround ?


Rollo

(Rx10 ohne Upd1, XCode 7.1, Win8.1, VmWare Fusion 8.1)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: iOS9 Erkennen ob Maus (Touch) ist gedrückt

  Alt 17. Dez 2015, 07:56
Das Problem hängt wohl damit zusammen das nach kurzer Zeit (ca. 0.5 sec.) ein
touchesCanceled vom iOS gesendet wird, wenn der Finger auf derselben Stelle bleibt.

Dies wird dann als MouseUp an die Forms etc. gesendet.

Also wenn der Finger bewegt wird ist alles OK, aber wenn man Finger drückt und hält dann kommt
solche ein falscher Event.

Dazu kommt noch das in FMX.Platform.iOS das touchesCancelled in Touches.Up uminterpretiert wird, so das man
keine Chance hat das überhaupt zu analysieren.
Damit ist dann aber die ursprüngliche Funktion gecancelled, weil man nicht weiss woher das MouseUp kommt.

Da habe ich mir gerade das FMX.Platform.iOS vorgenommen, aber ich hoffe noch das es einen einfacheren Weg gibt
um das abzustellen.

Wenn das mit LongTap o.ä. zusammenhängt, gibt es eine Möglichkeit das in iOS abzuschalten ?
Oder hat jemand eine andere Idee wie man das lösen kann ?

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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