![]() |
Gestures für Windows
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich habe eine Frage zu den Gestures. Meine Anwendung besteht aus einem TPanel (alClient). Darauf liegt eine TScrollbox (alClient). In der Scrollbox sind ein paar Buttons, die soweit außerhalb des sichtbaren Bereiches liegen, dass die vertikale Scrollbar angezeigt wird. Anwendung unter Windows starten und mit Mausrad in der Scrollbox scrollen -> funktioniert. Ich habe einen Touchbildschirm und wollte jetzt mit zwei Fingern hoch und runter schwenken aber leider bekomme ich das nicht hin, dass mit dem Fingern das scrollen auch ausgelöst wird. Gibt es da noch einen Trick? Ich habe bei den Gestures nichts geändert gegenüber den Default Einstellungen |
AW: Gestures für Windows
Vorsicht bei den Begriffen. Die Gestures und der TGestureManager (den du laut Bild nicht zugewiesen hast) sind für etwas anderes.
"Gestures" sind für "Ich male etwas auf den Bildschirm und danach wird einmalig etwas ausgelöst". Beispielsweise ein Dreieck, oder eine Linie von rechts nach links oder was auch immer. Damit kannst du kein "Ich scrolle mit dem Finger mit" oder "Ich zoome mit zwei Fingern" realisieren. Normal funktioniert das, ohne dass man etwas einstellen muss. Hast du auch wirklich einen richtigen Touchscreen? Also malt Windows z.B. keinen klassischen Mauszeiger, sondern nur so kleine Punkte? Und kannst du in anderen Anwendungen, z.B. Notepad oder einem Internet-Browser mit dem Finger normal scrollen? |
AW: Gestures für Windows
Danke für den Tip, dass wusste ich nicht.
Stimmt, es ist einfach ein Bildschirm über HDMI angeschlossen, der Touch hat. Also Browser und Editor lassen sich auch nicht scrollen. Bekommt man das aber irgendwie hin, wenn das explizit programmiert/einstellt? Würde gerne die Scrollbar mit zwei Fingern scrollen wenn ich die Finger in der Komponente "ziehen" |
AW: Gestures für Windows
Ja HDMI allein ist ein bisschen wenig. Der wird doch wohl noch zumindest ein USB-Kabel haben?
Daneben gibt es, je nach Modell, teilweise verschiedene Treiber/Konfigurations-Tools, wo einstellbar ist, wie sich das Ding verhalten soll. Soll es so tun, als sei es eine Maus? Oder soll es sich verhalten wie ein "echter Touch"? |
AW: Gestures für Windows
Ja hast Recht, USB hat er auch wegen der Rückmeldung des Touchs.
Also mir selber würde es reichen, wenn er sich wie eine Maus verhält und ich mit der Maus auch hoch/runter ziehen/schieben kann und die Scrollbar eben mitwandert. Habe jetzt ein GestureManager drauf gelegt und bei der Scrollbox verknüpft.
Delphi-Quellcode:
Leider ist die EventInfo immer nur das Feld Location (X/Y) gefüllt und zwar mit dem Wert, wo man zuerst geklickt hat und den "Zieh/Schiebevorgang" gestartet hat. Würde ja gerne entsprechend der Länge des "Wischens" auch die Scrollbox scrollen
case EventInfo.GestureID of
sgiUp : begin ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position + EventInfo.Distance; end; sgiDown : begin ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position - EventInfo.Distance; end; end; Handled := True; |
AW: Gestures für Windows
Ich glaube, dein erstes Problem ist doch, dass Ding überhaupt anzuschließen und zu schauen wie es sich verhält:
Das entscheidet dann auch, ob du dir über überhaupt einen GestureManager etwas hinmurksen musst, vielleicht lieber einfach doch ▲ und ▼ Buttons über- und unterhalb deine Scrollbox packst oder ob du einfach Windows easy selbst darin scrollen lassen kannst. |
AW: Gestures für Windows
Die Frage ist, ob der Touchscreen echten Touch kann oder lediglich eine Maus emuliert. Das sollte in dessen Unterlagen stehen.
Du kannst dich mit ![]() |
AW: Gestures für Windows
Das sieht man ja eigentlich schon, wenn man nur mal irgendwo auf den Bildschirm tappt, muss man sich keine Software für schreiben:
Maus ist ... wie Maus. Offensichtlich. Ist es wie Touch, bleibt kein Mauszeiger dort stehen wo man hingetippt hat, sondern nur so ein kleiner Kreis, der schnell wieder verschwindet. Auch kann man z.B. in einem Webbrowser oder Notepad oder anderen Programmen ganz normal scrollen. |
AW: Gestures für Windows
Ganz so einfach ist es nicht. Es gibt auch Monitore bzw. Treiber, die sich wie eine Maus verhalten, aber visuell wie Touch aussehen. Ich habe 11 Jahre lang für solche Systeme entwickelt. Da gibt es so viele Varianten...
|
AW: Gestures für Windows
Ja, die ganz Billigen/Einfachen, emulieren gern einfach nur eine Maus.
Aber viele verhalten sich so oder so * Tippst du auf eine Fläche, welche sich als Touch registriert hat (RegisterTouchWindow), dann wird es Touch, * und bei anderen Flächen verhält es sich wie eine Maus. Zitat:
|
AW: Gestures für Windows
Liste der Anhänge anzeigen (Anzahl: 1)
Hier einfach ein paar Buttons in eine Scrollbox geworfen.
Delphi-Quellcode:
Und hier, wie das ganze als Video aussehen sollte:
program Project1;
uses System.SysUtils, Vcl.Forms, Vcl.Controls, Vcl.WinXPanels, Vcl.StdCtrls; begin const form = TForm.Create(nil); const scrollBox = TScrollBox.Create(form); scrollBox.Parent := form; scrollBox.Align := TAlign.alClient; for var buttonIndex := 0 to Pred(100) do begin const button = TButton.Create(scrollBox); button.Caption := buttonIndex.ToString(); button.Name := 'button' + button.Caption; button.Parent := scrollBox; button.Left := 10; button.Top := 10 + buttonIndex * 32; scrollBox.InsertControl(button); end; form.ShowModal(); end. ![]() ![]() |
AW: Gestures für Windows
Windows 11: [Druck] drücken und auf Video umstellen :duck:
|
AW: Gestures für Windows
Ich weiß nicht, was man dann großartig auf so einem Video hätte sehen können.
Es ging ja im Endeffekt um den Finger auf dem Touchscreen, der das hin- und her schiebt. Wenn Windows das mit aufnehmen kann bin ich echt baff 🐸 |
AW: Gestures für Windows
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe das Beispiel aus dem Video oben getestet, da geht weder das Mausrad zum scrollen noch auf dem Maus-emulierten-Touch-Bildschirm das wischen.
Also scrollen nur möglich durch ziehen und klicken auf der Scrollbar selber. Anbei mein eigener Test, vielleicht habt ihr ja noch eine Idee. Mir wäre ja das Wischen mit der Maus Recht. |
AW: Gestures für Windows
hat jemand eine Idee dazu ^^?
|
AW: Gestures für Windows
Zitat:
|
AW: Gestures für Windows
Also, es ist ein Touchbildschirm, der sich aber nur wie eine Mausemulation verhält. Daher bekomme ich das mit dem Touch und Gesten nicht hin wie ich dich verstanden habe.
Was ich jetzt gerne möchte, ist einfach auf meinem normalen Bildschirm vom Laptop mit der Maus das ziehen nach oben und unten innerhalb der Scrollbox (nicht auf der Scrollbar!), dass die eingestellten Gesten ausgeführt werden. Das macht er ja auch mit dem Beispiel oben allerdings würde ich gerne die Scrollbox soweit automatisch scrollen, wie ich mit der Maus das nach oben/unten ziehen durchgeführt habe aber das Feld Location gibt immer nur die Quellkoordinaten an und es gibt keine Zielkoordinaten womit man eine Differenz ausrechnen könnte und mit dieser Differenz die Scrollbox "nachscrollt". Soweit verstanden was ich meine? Wenn ich dieses Verhalten ordentlich programmiert/eingestellt bekomme auf einem normalen Laptop-Bildschirm, würde mir das für meinen externen Maus-emulierten-Touchbildschirm reichen. |
AW: Gestures für Windows
OnMouseDown
* Startpunkt merken OnMouseMove * entsprechend zum Start, bzw. letztem Move verschieben * wenn weit genug am Rand (oben/unten), den Timer aktivieren TTimer * weiterverschieben OnMouseUp * aufhören |
AW: Gestures für Windows
Danke Himitsu, darum ging es aber nicht.
Ich wollte ja gerne mit den Gesten arbeiten und damit probieren. Deine Lösung geht natürlich auch, war aber nicht meine Frage ;-) Es sei denn, jemand sagt mir jetzt, es geht mit Gesten nicht und es gibt nur deine Lösung. Dann akzeptiere ich das auch aber wollte wie gesagt gerne mich in die Gesten einarbeiten |
AW: Gestures für Windows
Die Gesten werden dir nicht helfen, etwas wie Scrollen oder Zoomen zu emulieren. Die triggern erst, wenn du "fertig" gemalt hast, und dann passiert etwas.
Kein Mensch wird akzeptieren, erst mit dem Finger von unten nach oben zu streichen, und dann erst schiebt sich mit einem großen Sprung der Bildschirminhalt sobald jemand den Finger vom Glas nimmt. Mach über und unter deine Scrollbox notfalls zwei Buttons zum Hoch ▲ und Runterscrollen ▼, das versteht jeder. Oder du hast die Zeit und bastelst dir selbst einen Scrollmechanismus mit OnMouseDown, OnMouseMove, OnMouseUp und alldem. |
AW: Gestures für Windows
Zitat:
Schade aber danke für deine Bemühungen |
AW: Gestures für Windows
An deiner Stelle würde ich noch einmal schauen, ob es wirklich keinen besseren Treiber oder ggf. ein Einstellungs-Tool vom Hersteller gibt, dass sich der Bildschirm auch als "richtiger" Touch einbinden kann, statt so einer ärmlichen Mausemulation.
|
AW: Gestures für Windows
"Richtiger Touch" bedeutet mehrere Finger gleichzeitig bemerken und verarbeiten. Das ist Grundvoraussetzung, die bei "billigen" Umsetzungen von Touch-Displays einfach nicht gegeben sind.
|
AW: Gestures für Windows
Zitat:
Das ist MultiTouch. z.B. der Unterschied Windows 7 und Windows 10 ... Ersteres konnte nur einen Finger. Ebenso die rezessiven Touchscreens, welche es z.B. auch immernoch für den Raspberry gibt, zum Aufstecken. |
AW: Gestures für Windows
Wie der Bildschirm das "Signal" einliest (kapazitiv, resistiv, optisch, akustisch, ...) ist im Endeffekt irrelevant.
Es gibt genauso billige resistive Touchscreen mit nur einem Finger die sich als richtige Touchscreen in Windows melden, und nicht als Maus. Es geht darum, ob das Gerät über seinen USB-Stecker sagt "Hallo, ich bin eine Computermaus" oder ob der sagt "Hallo, ich bin ein Stift" oder "Touchscreen" oder was auch immer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 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-2025 by Thomas Breitkreuz