MouseGestures: Erweitern Sie Ihr Programm mit Mausgesten

Aktuelle Version
v0.2.1, 2005-04-25
Download: mousegestures-0.2.1.zip (201KB), Delphi 5 Quellcode und Demoanwendung sind enthalten.
Freeware, Open Source
Zusammenfassung
Die MouseGestures DLL ist eine Bibliothekt, diees Ihnen ermöglicht, Ihre Applikation mit Mausgesten zu erweitern. Sie ist für Anwendungsentwickler gedacht, nicht für reine Benutzer.
Betriebssysteme/Sprachen
Windows. Hat auc herfolgreich mit Win2000, WinXP, Win95 funktioniert. Konnte auch erfolgreich mit Delphi4 kompiliert werden.
Dank an Holger Schieferdecker fürs Testena uf Win95 mit D4.
Die DLL sollte mit allen Sprachen zusammenarbeiten, die DLLs einbinden können, wie C++, C#, Object Pascal (Delphi), …
Lizenz
MouseGestures.dll ist Freeware und kommt ohne Garantien und Service. Daher nutzen Sie das Programm gänzlich auf eigene Gefahr. Sie dürfen den code auch in kommerziellen Produkten einsetzen, so lange Sie mich als ursprünglichen Autor erwähnen. Wenn Sie Änderungen am Code vornehmen, müssen Sie den ursprünglichen Urheberschaftstext beibehalten und den Code unter derselben Lizenz veröffentlichen. Genauere Informationen in der LICENCE.TXT-Datei, die im Downloadpaket enthalten ist.

Einführung

Das erste Mal stoplerte ich über Mausgesten, als Opera Software ASA sie für ihren Webbrowser Opera einführte.

Sie sind ein genialer Ansatz, um eine Computermaus noch mächtiger zu machen. Eine Muasgeste ist eine bestimmte Bewegung de rMaus, wöhrend man die rechte Maustaste gedrückt hält.

Um also eine Runter-dann-rechts-Geste zu vollführen, drücken Sie die rechte Maustaste, bewegen die Maus nach unten, dann nach rechts und lassen die Mausaste wieder aus. Wenn Sie in Ihrer Applikation diese Mausgeste registriert haben, wird die Information über die entsprechende Geste an Ihr Programm geleitet.

Benützung

Linken Sie die DLL einfach an Ihr Programm. Die README.html Datei im Downloadpaket enthält detaillierte Informationen zur Benützung, daher streiche ich hier nur die wichtigeten Funktionen heraus.

Eigentlich rufen Sie für jede Geste, auf die Ihre Applikation reagieren soll, die Funktion RegisterGesture auf. Dann schalten Sie die Gestenerkennung mit  GesturesOn ein.Die Bibliothekt räumt alle registrierten Gesten beim Entladen auf, aber wenn Sie das selbst machen wollen, rufen Sie GesturesOff und UnregisterAllGestures auf.

  • Mausgesten registrieren:Jede Geste wird durch einen String und einem Start-Handle repräsentiert (Das Window-Handle, über dem die Mausgeste begonnen wurde)
  • Die f4 Hauptrichtungen können unterschieden werden: Hinauf (U), Rechts (R), Hinunter (D), Links (L). Zusätzlich können Modifier angegeben werden, wie ‚a‘ für die Alt-Taste, ‚c‘ für Strg und ’s‘ für die Shift-Taste.
    Beispiele: DR … runter-rechts; aDR=DRa=aaaDR .. Alt plus runter-rechts
  • Mausradgesten (W für eine Bewegung zum Benutzer hin und M für eine Bewegung vom Benutzer weg):Klicken und halten Sie die rechte Maustaste, dann bewegen Sie das Mausrad. Sie können bestimmen, ob die Mausgeste wie normale Gesten funktionieren (also beim Auslassen der rechten Maustaste), oder ob sie sofort auf das Scrollen reagieren sollen.
    Beispiele: aW … Alt + Mausrad zum Benutzer hin; M … Mausrad vom Benutzer weg. Wenn Sie wollen, dass die Mausradgesten auf herkömmliche Art funktionieren, dann können Sie auch Gesten wie WMW oder aMW verwenden.
    Anmerkung: Mausradgesten funktionieren nur auf Win2k oder höher.
  • Die Nachrichten, die beim Auslösen einer Geste gesendet werden, werden durch drei Parameter bestimmt: Die Nachricht selbst, das Starthandle und einen wParam.

Changelog

2005-04-25 — 0.2.1
Bugfix: Mausradbehandlung war fehlerhaft.
2005-04-23 — 0.2
Verbesserte Performance (Siehe GesturesOn in README.html)
(bug)fix: Messages wurden fälschlicherweise als behandelt markiert, selbst wenn nichts passiert ist. Behebt Probleme mit Popupmenüs.
Mausradintegration.
Modifiers implementiert (Alt, Ctrl, Shift)
2005-04-05 — v0.1
v0.1 veröffentlicht.

Credits

Ich möchte Marian Aldenhövel für die Inizialzündung zur Implementierung dieser DLL danken. Michael Winter and Torsten Munkelt haben wertvolle Kommentare in der Newsgroup de.comp.lang.delphi.misc hinterlassen.