AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Gesture Development Tool
Thema durchsuchen
Ansicht
Themen-Optionen

Gesture Development Tool

Ein Thema von OrallY · begonnen am 29. Mai 2004
Antwort Antwort
Benutzerbild von OrallY
OrallY
Registriert seit: 29. Apr 2003
Hallo,

ich möchte eine Vorversion des neuentwickelten Gestures vorstellen. Wie einige schon wissen, war ich gezwungen nocheinmal von vorne anzufangen, da durch einen Crash die Quelltexte des alten Gestures verloren gingen.

Das hier gepostete Programm ist alles andere als das fertige Programm, welches den Titel Gesture tragen wird. Es ist vielmehr ein Programm, welches mir zum Testen und Kalibrieren von Gesture dient. Hier wird auch deutlicher, wie Gesture funktioniert.

Der Quelltext ist weitesgehend kommentiert, man kommt aber nicht umhin, sich in den Quelltext einzuarbeiten. Mag sein, dass man ersteinmal nicht durchblickt, ich stehe darum gerne für Fragen bereit. Ich erkläre auch gerne die Funktionsweise einzelner Prozeduren.

Die Funktion CompareGestures ist nur eine teilweise funktionstüchtige Version. Sie wird noch stark überarbeitet! Ansonsten ist die Klasse TGestureRec praktisch fertig. Was jedoch keinen daran hindern soll, sie weiter zu verbessern und zu optimieren. Mehr dazu weiter unten.
Hinweis:Einige Variablen und Funktionen sind mit {V!} gekennzeichnet. Dies weist auf Objekte hin, die allein für GestureDT benötigt werden und im finalen Gesture nicht mehr zu finden sind. Sie tragen nichts zur eigentlichen Funktion von Gesture bei.

Kurze Bedienungsanleitung:
Hinweis: GestureDT ist ein Entwicklungstool und legt daher nicht viel Wert auf eine durchdesigntes GUI.

Das Programm ist in mehrere Bereiche unterteilt. Die große weiße Fläche (imgArea: TImage) ist die Zeichenfläche. Hier können die Gesten mit der linken Maustaste gezeichnet werden. Gelöscht werden können sie mit der rechten Maustaste. Sobald die Maustaste losgelassen wird, erscheinen zusätzlich zu den gezeichneten Punkten weitere andersfarbige Punkte (Farbe konfigurierbar in der Legende -> auf die Kästchen klicken). Die standardmäßig grünen Punkte stehen für noch dazu berechnete Punkte, um den Mausweg zu glätten. Die blauen stehen für Punkte, die aus dem Mausweg gelöscht wurden. Diese Mausglättungsfunktion lässt sich durch die Checkbox "Geste glätten" deaktivieren.
Die roten Punkte sind die sog. "Important Points" auf die die Geste reduzierzt wird (siehe GetImportantPoints).
Eine Geste kann durch das drücken durch den "Speichern"-Button für die Laufzeit gespeichert werden. Sie wird dann in die Listbox eingetragen (Das Format lässt sich leicht durchschauen. Am besten Quelltext angucken.).
Zeichnet man eine Geste und will überprüfen, ob sie mit einer gespeicherten Übereinstimmt, drückt man auf den "Prüfe"-Button (Diese Funktion ist nur rudimentär implementiert).
Unter dem Menüpunkt Funktionen finden sich zwei kleine Tools. "Ermittle Punktabstände" ermittelt die Abstände der einzelnen Punkte auf der X- und Y-Achse (um zu sehen, welche Auswirkungen die Mausglättung hat). Der größte Abstand wird rot hervorgehoben (im Memo).

Mitentwicklung:
Wie ihr unschwer sehen könnt ist Gesture/GestureDT OpenSource. Es ist also jedem möglich Gesture zu optimieren, verbessern und zu erweitern. Dies ist von mir sogar erwünscht!
Zu den genauen "Teilnahmebedingungen":
Jeder kann mir eine Verbesserung, Optimierung, Erweiterung, etc. schicken oder hier posten. Ist diese sinnvoll und gut, werde ich sie offiziell in Gesture übernehmen. Ist Gesture ersteinmal weit genug werde ich es auch dem großen Sourceforge-Archiv anfügen.
Der aktuellen Schwerpunkte die ich legen möchte:
  • die Optimierung des aktuellen Quellcodes (dies schließt auch bessere und effizientere Lösungswege von einzelnen Funktionen ein)
  • das Ausfeilen der sehr wichtige CompareGestures
Schonmal im Voraus einige Ziele, die ich für Gesture vorsehe:
  • möglichst klein (NonVCL), schnell und platzsparend
  • naürlich eine gute Gestenerkennungsrate
  • direkt auf den Desktop zeichen zu können (Ich hatte dies beim alten Gesture mit einem globalen LLMouseHook gelöst, der Mausbewegungen bei gedrückter rechten Maustaste abfängt und nicht an Windows weiterreicht. Klicks oder nur minimale Bewegungen wurde weitergereicht. Die Gesten wurde dann direkt auf das Desktop DC gezeichnet, wobei die Linie genau die invertierten Farben des Hintergrunds darstellte.)
  • wer es vielleicht noch kennt: Das Ringmenü. Ich habe eigentlich nicht vor es nocheinmal zu schreiben. Wer Lust dazu hat, dem steh nichts im wege .
  • gleiche Gesten können auf unterschiedlichen Fenstern gezeichnet eine andere Wirkung haben
Diese Liste lässt sich noch beliebig erweitern. Ich sehe zum Beispiel ein seperates Konfigurationsprogramm vor, bei dem dann die Gesten gespeichert und konfiguriert werden können. Außerdem weiß ich noch nicht, wie die Aktionen genau aussehen, die durch eine Geste ausgelöst werden (also: wer Lust hat kann sich ja was überlegen )

Wer also etwas zu Gesture beitragen will, der ist herzlich eingeladen dies zu tun. Ich würde mich freuen! Mühen werden natürlich mit einem Eintrag in die Credits belohnt


P.S.: Wenn ich diese Sparte zweckentfremde, bescheid geben. Ich war mir nicht ganz sicher, wo dies nun hingehört. Aber ich bin mir sicher, dass auch ohne Äußerung der Bitte ihr entsprochen worden wäre .
Angehängte Dateien
Dateityp: zip gesturedt.zip (8,5 KB, 81x aufgerufen)
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
 
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 10:55 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