AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gesture - Probleme

Ein Thema von Kraisel · begonnen am 29. Jul 2015 · letzter Beitrag vom 29. Jul 2015
Antwort Antwort
Benutzerbild von Kraisel
Kraisel

Registriert seit: 19. Mär 2012
Ort: Bochum-Linden
64 Beiträge
 
Delphi 12 Athens
 
#1

Gesture - Probleme

  Alt 29. Jul 2015, 18:53
Hallo,

Problem 1:
Wenn ich meine FMX-Anwendung unter WIN 8.1 beende, erhalte ich MemoryLeaks (ReportMemoryLeaksOnShutDown = True), wenn ich das Programm vorher per Touch bedient (z.B. gescollt) habe. Wenn nicht, oder nur per Maus bedient, beendet das Program einwandfrei. Egal, ob mit oder ohne GestureManager. Sowohl in XE7 als auch in XE8.

Problem 2:
Wenn ich eine Standard-Geste einschalte (InteractiveGestures = []), erhalte ich folgende Fehlermeldung: "Fehler beim Lesen von TGestureStreamData.Control: Zugriffsverletzung bei Adresse 500D4ED00 in Modul 'rtl220.bpl'. Lesen von Adresse 00000008." Wenn ich rechts neben der CheckBox für die Geste klicke, erscheint: "Sie können die Eigenschaft nicht setzen..."

Frage 1:
Reicht je Anwendung EIN GestureManager oder muss er je Form oder sogar je TouchControl vorhanden sein?

Frage 2:
Wann erkennt und bearbeitet die Anwendung automatisch interaktive Gesten (z.B. Verschieben, scrollen usw.). Sind dies bestimmte Komponenten oder wie ist das organisiert. Meine eigene Graphik muss ich natürlich selber in OnGesture bearbeiten. Das ist mir klar, und funktioniert auch.

Frage 3:
Wann brauchen interaktive Gesten den GestureManager und wann nicht ?

Frage 4:
Gibt es irgendwo bessere Hintergrundinfos, die deutlich über die Standard Emba-Hilfe hinausgehen? Oder habe ich etwas übersehen?

Vielen Dank im Voraus
Peter Kaisler
Das einzig Komplizierte ist zu begreifen wie einfach es ist.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Gesture - Probleme

  Alt 29. Jul 2015, 19:02
Also...

Ich habe bisher noch keinen GestenManager gebraucht...

Ich setzt die InteractiveGesture z.B. Zoom auf true und belege OnGesture

Und dann sowas...

Delphi-Quellcode:
  if EventInfo.GestureID = igiZoom then
    begin
      if not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags) and not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags) then
        begin
          Direction := EventInfo.Distance/FLastDIstance;
          LScale := ZoomPanel.Scale.X * Direction;
          if LScale < 1 then
            LScale := 1;

          ZoomPanel.Scale.X := LScale;
          ZoomPanel.Scale.Y := LScale;

          ZoomPanel.Width := ZoomWidth * LScale;
          ZoomPanel.Height := ZoomHeight * LScale;
        end;
      FLastDIstance := EventInfo.Distance;
    end;
Mehr habe ich bisher nicht gebraucht...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Gesture - Probleme

  Alt 29. Jul 2015, 19:14
Ich kann ehrlich gesagt nur für die VCL antworten. Es kann sein dass es da völlig anders ist, oder ein- und dasselbe. Ich weiß es nicht.

Den TGestureManager brauchst du nicht für interaktive Gesten. Interaktive Gesten sind "Pinch to zoom", Scrollen mit dem Finger, all das. Der TGestureManager ist "Wir wedeln mit dem Finger herum und schauen am Schluss, ob es eine bestimmte Form hatte". Beispielsweise ein "Z". Dafür kann man den nehmen. In der VCL schloss sich das (glaube ich) sogar aus- Entweder TGestureManager oder interaktive Gesten. Kann mich aber auch irren.

Eine weitere spaßige Eingenschaft des TGestureManagers sind die Speicherlecks: Delphi speichert ja gerne den Inhalt eines Frames redundant in der DFM seines Parents ab. Wenn dort der TGestureManager redundant wieder aufgeführt wird passt irgendwas nicht mehr und es gibt Speicherlecks beim Beenden. War nur beim TGestureManager so. Keine Ahnung warum und ob das bei FireMonkey noch gilt. Wahrscheinlich schon.

Mit der Embarcadero-Hilfe zu Touch kam ich ehrlich gesagt auch nicht zurecht. Den TGestureManager zu missverstehen machen anscheinend viele (mich eingeschlossen).
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Gesture - Probleme

  Alt 29. Jul 2015, 19:18
Der TGestureManager ist "Wir wedeln mit dem Finger herum und schauen am Schluss, ob es eine bestimmte Form hatte". Beispielsweise ein "Z".
Kann der nicht auch lernen... Glaube schon... Nach dem Motto... Die Wedelei von gerade soll XY auslösen...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Gesture - Probleme

  Alt 29. Jul 2015, 19:31
Ja, eigene Gesten konnte man damit sogar erstaunlich gut definieren. Dagegen will ich ja auch nichts sagen, ich kann mir nur absolut kein Anwendungsgebiet dafür vorstellen.
  Mit Zitat antworten Zitat
Benutzerbild von Kraisel
Kraisel

Registriert seit: 19. Mär 2012
Ort: Bochum-Linden
64 Beiträge
 
Delphi 12 Athens
 
#6

AW: Gesture - Probleme

  Alt 29. Jul 2015, 20:39
OK, danke, auch ohne GestureManager funktionieren meine interaktiven Gesten. Das hatte ich nie probiert. Aber ich erhalte immer noch MemoryLeaks, z.B. beim Zoom oder Pan.

Der Code von Frank reicht nicht, wenn man will, dass das Design komplett neu gebaut werden soll bzw. muss (und eben nicht NUR per Faktor gezoomt wird), und er reicht auch nicht, wenn man will, dass die Vergrößerung nicht oben links beginnt, sondern so Verschoben werden soll, dass der sichtbare Bereich zwischen den Fingern auch dort bleibt. Quasi, dass alles nach außen vom Mittelpunkt der Finger vergrößert / verkleinert wird. Dazu muss man auch noch verschieben und evtl. auch den sichtbaren Teil des Controls entsprechend anpassen. UND dann siehts deutlich besser aus, wird aber leider auch komplizierter.

In meinem GestureSimulator, den ich in meinem eigenen TcUserEventHandler implementiert habe, funktioniert das alles per Tastatur/Maus einwandfrei, aber mit einem echten Touch habe ich noch ein paar Probleme, die ohne das Wissen der Internas der Gesten noch schwerer nachzuvollziehen sind. Ich werde wohl weiter experimentieren.

Es bleibt aber die Frage, wieso ich die Standard-Gesten nicht einschalten kann?
Peter Kaisler
Das einzig Komplizierte ist zu begreifen wie einfach es ist.

Geändert von Kraisel (29. Jul 2015 um 20:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Gesture - Probleme

  Alt 29. Jul 2015, 21:45
Der Code von Frank reicht nicht, wenn man will, dass das Design komplett neu gebaut werden soll bzw. muss (und eben nicht NUR per Faktor gezoomt wird), und er reicht auch nicht, wenn man will, dass die Vergrößerung nicht oben links beginnt, sondern so Verschoben werden soll, dass der sichtbare Bereich zwischen den Fingern auch dort bleibt. Quasi, dass alles nach außen vom Mittelpunkt der Finger vergrößert / verkleinert wird. Dazu muss man auch noch verschieben und evtl. auch den sichtbaren Teil des Controls entsprechend anpassen. UND dann siehts deutlich besser aus, wird aber leider auch komplizierter.
Hatte ich, aber in diesem speziellen Fall machte es keinen Sinn...
  Mit Zitat antworten Zitat
Benutzerbild von Kraisel
Kraisel

Registriert seit: 19. Mär 2012
Ort: Bochum-Linden
64 Beiträge
 
Delphi 12 Athens
 
#8

AW: Gesture - Probleme

  Alt 29. Jul 2015, 22:23
OK, dann bleibt zunächst nur noch die Frage, wieso ich die Standardgesten NICHT einschalten kann. Siehe Problem 2 in dieser Threaderöffnung. Hat jemand eine Idee?
Peter Kaisler
Das einzig Komplizierte ist zu begreifen wie einfach es ist.
  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 01:05 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