[German] Flow Editor für Windows in AutoHotkey

General discussions about Automagic and automation in general

Moderator: Martin

Post Reply
User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

[German] Flow Editor für Windows in AutoHotkey

Post by bichlepa » 07 May 2014 16:32

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

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 07 May 2014 16:40

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

angelatwork
Posts: 186
Joined: 12 Feb 2014 01:45

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

Post by angelatwork » 08 May 2014 11:08

Interesting :-)
Best regards,
AngelAtwOrk

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 08 May 2014 21:25

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

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 10 May 2014 18:22

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

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 12 May 2014 06:25

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

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 12 May 2014 18:55

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

BoBo
Posts: 110
Joined: 05 May 2014 12:45

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

Post by BoBo » 13 May 2014 09:47

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

LightTempler
Posts: 53
Joined: 17 Mar 2013 16:08

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

Post by LightTempler » 16 May 2014 23:36

Möglicherweise entlockt Martin die sehr optimistische Einschätzung 'ich schätze die Hälfte ist geschafft' ein leichtes Schmunzeln...

User avatar
bichlepa
Posts: 146
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

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

Post by bichlepa » 17 May 2014 07:04

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.

Post Reply