Page 1 of 1

[German] Flow Editor für Windows in AutoHotkey

Posted: 07 May 2014 16:32
by bichlepa
Ich habe mit der Entwicklung eines Flow Editors für Windows begonnen und möchte hier meine Fortschritte festhalten. :geek:

Stand: 06.05.2014

AutoHotkey benutze ich schon seit Jahren, um etwas zu automatisieren oder kleine Programme zu schreiben.
Mit Grafiken habe ich nocht nie gearbeitet und ich suchte nach einer Lösung für AutoHotkey. Sie heißt: GDI+.
Nach einiger Einarbeitung habe ich (eher durch Trial and Error) versucht, einige Tutorial-Beispiele umzuschreiben und etwas in einem Fenster darzustellen.

Ergebnis: Man kann die Beiden Elemente auf dem Fenster herumschieben.
Image
Download Sourcecodes

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 07 May 2014 16:40
by bichlepa
Stand: 07.05.2014

Die Entwicklung geht voran.
Ich habe es geschafft, die beiden Elemente miteinander zu verbinden. Die Verbindung geht mit, während man die Elemente verschiebt. Bei einem Klick auf ein Element oder Verbindung wird dieses markiert. Ich kann auch neue Actions und Conditions hinzufügen (Verbindungen noch nicht).
Ich versuche eine Struktur zu schaffen, um flexibel neue Actions, Conditions und Verbindungen hinzufügen und entfernen zu können.
Zusätzlich achte ich darauf, möglichst viel Code in Funktionen auszulagern, um Übersicht zu bewahren.

Image

Download Sourcecodes

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 08 May 2014 11:08
by angelatwork
Interesting :-)

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 08 May 2014 21:25
by bichlepa
Nach ca. 4 weiteren Stunden Programmierung, ist die grafische Darstellung ein gutes Stück vorangekommen.

Änderungen:
  • Ich kann nun Elemente beliebig hinzufügen, verbinden und entfernen (durch Drücken der "Entf"-Taste).
    Dafür mussten unter anderem folgende interne Voraussetzugen geschaffen werden:
    • Bei der Erstellung eines neuen Objekts wird eine eindeutige ID (z.B. Action1) erstellt, und in eine Liste gespeichert
    • Die Variablen jeweils mit dem Namen der ID und einem Zusatz (z.B. Action1Typ) beinhalten Informationen zu dem Element.
    • Bei jeder Änderung wird die Liste durchlaufen und jedes Element wird neugezeichnet
    • Beim Löschen eines Elements werden die Bilder entfernt und anschließend der Eintrag aus der Liste gelöscht
    Wenn ein Element entfernt wird, dann werden alle bestehenden Verbindungen daraufhin überprüft, ob sie mit dem Element verbunden waren, und, falls ja, ebenfalls gelöscht. Verbindungen können auch einzeln gelöscht werden.
  • Es musste bei den Verbindungen sichergestellt werden, dass
    • keine Verbindung zum Trigger möglich ist
    • keine Verbindung doppelt erstellt werden kann
    • keine Verbindung von einem zu demselben Objekt geht
  • Die Logik beim Verlauf der Verbindungslinien wurde verbessert und ist jetzt in etwa so, wie in der AutoMagic App.
Image
Download Soucecodes

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 10 May 2014 18:22
by bichlepa
Ein weiterer Meilenstein wurde erreicht.
Um die Flows zu laden, musste ein Mittel gefunden werden, XML-Dateien zu parsen. Mit zwei vorhandenen Lösungen im AutoHotkey Forum kam ich nicht klar, also habe ich kurzerhand einen eigenen gebastelt.
Ich kann jetzt vorhandene Flows laden und dabei zumindest die Position und Namen aller Elemente, sowie alle Verbindungen auslesen. Weitere Eigenschaften fehlen noch. Ein Problem ist auch, dass manche Elemente außerhalb des sichtbaren Bereichs verschwinden (AM verwendet auch negative Koordinaten) und es noch keine Möglichkeit gibt, sie hervorzuholen. Auch sind die Abstände zwischen den Elementen viel zu groß, da ich (noch) ganz andere Maße verwende.
Meine Idee für den Lösungsansatz: Die Bilddarstellung weitgehend überarbeiten, und statt pro Element ein Bild, ein einziges großes Bild verwenden und die Erkennung, wann auf ein Element geklickt wurde, selbst implementieren (Position und Größe aller Elemente in eine extra Datenbank speichern und bei jedem Klick die Mausposition ermitteln und untersuchen, ob ein Element darunter liegt). Dann könnte man auch zwei weitere Probleme lösen: Erstens, die fehlende Möglichkeit zu zoomen und zu scrollen; Zweitens, unpraktisches Verhalten, wenn man Elemente anklickt (z.B. um eine Linie auszuwählen muss man sie genau treffen, was wegen ihrer kleinen Breite recht schwierig ist).

Image
Download Sourcecodes

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 12 May 2014 06:25
by bichlepa
Die Bilddarstellung habe ich nun überarbeitet (alle Elemente werden jetzt in ein einziges Bild gezeichnet, statt ein Bild für jedes Element). Dabei habe ich einige Grafiken verschönert, ein Raster hinzugefügt und den Zoom implementiert (Den kann man aber bis jetzt nur im Code festlegen). Der Abstand der Elemente wurde korrigiert.
Die Erkennung, wann auf ein Element geklickt wurde, habe ich noch nicht implementiert, somit kann man nichts anklicken oder verschieben. Scrollen kann man auch nicht.

Image
Download Sourcecodes

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 12 May 2014 18:55
by bichlepa
Die Darstellung ist nun komplett funktionsfähig!
Man kann nun scrollen, zoomen, Elemente (auch mehrere auf einmal) markieren, hinzufügen, entfernen und verbinden.
Nun werde ich die Implementierung der Einstellungsfenster umsetzen, was aber nicht weniger aufwendig sein wird.
Ich schätze, die Hälfte ist nun geschafft.

Image
http://dl.dropbox.com/s/rm4tgbekgbrh3r1 ... or%206.zip

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 13 May 2014 09:47
by BoBo
Hallo bichlepa,
beeindruckende Arbeit!
Frage, ist dein Scriptprojekt mit der aktuellen AutoHotkey Version gecoded?
Spräche etwas dagegen die jeweilig verwendete AHK Version im Script(Header) zu nennen?
Im Falle von Inkompatibilitäten kann sowas eine wertvolle Info sein. Danke.

So, ich sehe und staune mal weiter :)

BoBo

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 16 May 2014 23:36
by LightTempler
Möglicherweise entlockt Martin die sehr optimistische Einschätzung 'ich schätze die Hälfte ist geschafft' ein leichtes Schmunzeln...

Re: [German] Flow Editor für Windows in AutoHotkey

Posted: 17 May 2014 07:04
by bichlepa
LightTempler wrote:Möglicherweise entlockt Martin die sehr optimistische Einschätzung 'ich schätze die Hälfte ist geschafft' ein leichtes Schmunzeln...
Da hast du Recht. Die Einschätzung war sehr optimistisch.
Das habe ich beim Versuch, den nächsten Schritt zu programmieren, gemerkt. Die verschiedenen Elemente haben sehr unterschiedliche Parameter, die zum Teil wiederholt vorkommen. Das einlesen dieser Parameter scheint jetzt einigermaßen zu funktionieren, aber das Bearbeiten steht noch bevor.
Weitere ungelöste Aufgaben:
- Eine Datei kann mehrere Flows enthalten.
- Bei mir können Verbindungen nur von unten am Ausgangselement beginnen und oben am Zielelement enden. AM unterstützt aber das Verschieben der Start- und Endpositionen der Verbindungen.

Ich mache jetzt etwas langsamer mit dem Projekt, sonst vernachlässige ich noch mein Studium. Ich kann nicht einschätzen, wann ich fertig sein werde.