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/)
-   -   Touch Gesten von außerhalb des Bildschirms hinein erkennen. (https://www.delphipraxis.net/181362-touch-gesten-von-ausserhalb-des-bildschirms-hinein-erkennen.html)

Zimond 8. Aug 2014 17:00

Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
Hi. Ich nutze XE5 und beim Austesten der Touchfunktionen auf meinem Win8 Ultrabook hab ich festgestellt das das onGesture Ereignis nicht auftritt wenn die Geste außerhalb des Bildschirms beginnt. Auch der Mauszeiger bewegt sich hierbei nicht. Beruht die Delphi Gestenerkennung nur auf der Mausposition? :pale: Wenn ja wäre das ja ziemlich sinnfrei.

Ich möchte ein Menü am Bildschirmrand per Fingerwisch aufrufen und jeder ist es doch bei Touchscreens gewöhnt das man solche Menüs vom Rand "einwischt" wobei man außerhalb des Bildschirms anfängt zu wischen.

Kann man da was einstellen oder fehlt da echte Touch Unterstützung?

Der schöne Günther 8. Aug 2014 17:08

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
VCL, richtig?

Der TGestureManager wurde mit Delphi 2010 (glaube ich) eingeführt. Diese Gestenerkennung sind reine Mausbewegungen. Ich finde das Ding auch relativ sinnlos.

Davon abgesehen gibt es die "interaktiven Gesten"- Die sind für Dinge wie den "Zwei Finger-Zoom" und all das. Sollte es nicht gehen, wenn du bsp. an den rechten Rand ein Panel legst und auf diesem im onGesture-Event schaust? Das müsste eigentlich Triggern wenn du keinen TGestureManager damit verknüpft hast. Interessant für das was du willst dürfte auch Touch.TabletOptions.toFlicks sein. Da übernimmt Windows, glaube ich, die Auto-Erkennung ob es ein langsames Schieben oder eben ein "Flick" ist.

Zimond 8. Aug 2014 17:32

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
ja VCL.+-

Hab außerdem festgestellt das bei benutztem Gestenmanager das normale Klickverhalten falsch ist auf dem Touchscreen. on (mousedown) wird da erst beim zweiten Tap registriert. Kann aber an sonstwas liegen.

Nee, da verzichte ich lieber auf den Rand und machs mit halbtransparenten Button am Rand auf die der Nutzer tappen kann. Im Bildschirm selber kommt man ja mit den üblichen Ereignissen auch zu Rande um Objekte im Spiel zu verschieben durch DragnDrop. Vielleicht bekommt man ja mit XE7 oder so richtigen Zugriff auf den Touchscreen und nicht nur auf die Mausemulation :roll:

Der schöne Günther 8. Aug 2014 17:43

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
Zitat:

Zitat von Zimond (Beitrag 1268058)
Hab außerdem festgestellt das bei benutztem Gestenmanager das normale Klickverhalten falsch ist auf dem Touchscreen. on (mousedown) wird da erst beim zweiten Tap registriert. Kann aber an sonstwas liegen.

Such mal hier im Forum, das ist bekannt. Das ist die Handballen-Erkennung. Die kann man gezielt für einzelne Elemente ausschalten, dann hat man sein onMouseDown auch direkt wenn man auf die Scheibe patscht.

Zitat:

Zitat von Zimond (Beitrag 1268058)
Vielleicht bekommt man ja mit XE7 oder so richtigen Zugriff auf den Touchscreen und nicht nur auf die Mausemulation

Dann hast du es nicht richtig verstanden. Der alte
Delphi-Quellcode:
TGestureManager
ist relativ simples Mausgedöns. Wirf den raus, dann kannst du im onGesture-Event machen was du willst. "Flick nach links? Ok, der Benutzer wischt von rechts hier rein deshalb mache ich jetzt..."

// Anhang:
Zu 1):
http://www.delphipraxis.net/1250060-post7.html

Zimond 8. Aug 2014 18:03

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
Auch auf die Gefahr einfach nur zu Blöd oder unerfahren zu sein aber wie krieg ich das denn hin das er das onGesture Event ohne den Manager überhaupt ausführt? Der geht bei mir gar nicht erst rein. Hab mal ein simples application.terminate eingesetzt. Weder auf dem Desktop per Maus noch aufm Notebook mit Touchscreen wird das Programm bei irgendeiner Bewegung beendet.

Der schöne Günther 8. Aug 2014 19:05

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du musst noch sagen, dass dich bestimmte interaktive Gesten interessieren. In unserem Fall igPan. Wir können das noch auf einen horizontalen "Pan" einschränken. Siehe Bild.

Setze im onGesture-Event die übergebene Referenz "Handled" noch auf True sonst wird die Geste an die Parent-Komponenten weitergereicht und meistens will man das nicht.

Die Windows-Flick-Events bekommt man anscheinend nicht ohne weiteres :(
Du müsstest also selbst schauen, ab wann es für dich ein "langsames Schieben" und wann ein "schneller Flick" ist.

Zimond 8. Aug 2014 19:51

AW: Touch Gesten von außerhalb des Bildschirms hinein erkennen.
 
ok, ich hatte bisher das Hauptformular benutzt was keine Reaktion ausgespuckt hat. Mit einem Panel klappt es jetzt mit dem Event. Mit dem Ansatz kann ich erstmal weiter machen. Vielen Dank.


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