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 Eigene Komponente um Touch-Bedienung erweitern (https://www.delphipraxis.net/210330-eigene-komponente-um-touch-bedienung-erweitern.html)

hotrs02 7. Apr 2022 10:54

Eigene Komponente um Touch-Bedienung erweitern
 
Hi *.*,

gegeben ist eine einfache Komponente in Delphi 11.1, abgeleitet von TCustomControl, die in einem Raster Kacheln anzeigt und dabei verschiedene Seiten verwaltet. Mittels Tastatur und Mausrad kann die aktuelle Seite bereits gewechselt werden. Bislang kommt die Komponente ohne Laufbalken aus.

Die Komponente soll jetzt so erweitert werden, dass der Anwender mittels hor. oder vert. Wischen die Seite wechseln kann.

Ich könnte jetzt neben der Komponente eine TGestureManager Komponente auf das Formular packen und wie gewünscht konfigurieren. Allerdings müsste ich das bei jeder Verwendung der Komponente erneut machen, was ich gerne verhindern würde. Kann ich in einer Komponente ohne große Konfiguration relativ einfach auf eine Auswahl von Gesten reagieren?

Alternativ sollte Windows doch Touch-Bewegungen in Botschaften umsetzen, so dass sich Anwendungen ohne Touch-Anpassung auch per Touch bedinden lassen. Muss ich dieses Verhalten für die Komponente aktivieren und welche Botschaften werden für hor. bzw. vert. Wischbewegungen ausgelöst?

Gruß

hotrs02 8. Apr 2022 15:58

AW: Eigene Komponente um Touch-Bedienung erweitern
 
Hi *.*,

ich habe es jetzt soweit hinbekommen, dass ich mittels CreateParams einen Laufbalken ergänze, was letztendlich dazu führt, dass beim Wischen WM_xSCROLL Botschaften an meine Komponente gesendet werden. Diese kann ich dann vernünftig auswerten, um ein Blättern per Wischgeste hinzubekommen.

Das Problem dabei ist allerdings, dass ich den Laufbalken gerne verstecken würde. Sobald ich aber ShowScrollBar(..., False) aufrufe, löst das Wischen keine Botschaften mehr aus.

Hat ggf. jemand eine Idee dazu?

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.

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