So, die nächste Version wirft ihre Schatten voraus.
Ich denke mir, morgen nach dem 2 Mann Stammtisch, wenn NimmNenKeks und ich das ganze nochmal final geprüft haben (der Programmierer findet eventuelle Fehlbedienungen ja normalerweise als letztes), kommt dann die neue Version.
Die letzte Version war ja eigentlich nur die FIngerübung, der Programm Auswahldialog diente zum konzeptionellen Entwurf. Diesmal gibt es einen universellen, konfigurierbaren Datenpunkt-auswahldialog-
Anwendung findet dieses erstmal an zwei Stellen im Editor. Erstmal über $src$ und Doppelclick öffnet sich der AuswahlDialog:
AN der stelle sind zum Programmtriggern: Systemvariablen, Datenpunkte und Zeitmodule erlaubt.
Grösse des Dialogs, der Anteil zwischen dem linken VirtualTreeview und dem rechten Listview sowie die Spaltenbreiten des Listviews lassen sich verändern und werden beim Programmende persisitiert und beim Programmstart geladen.
Über den Treeview wird die Grobauswahl gemacht (Endauswahl mit Doppelklick oder auch Enter geht auch) in der Listview die Endauswahl gemacht (Auch hier Doppelklick oder Enter). Zwischen dem Baum und dem Listenfenster lässt aich mit ctrl rechts bzw ctrl links öffnen. im Baum klappt pfeil rechts einen Node auf, Pfeil links klappt den node zu. Die Filtereingabe funktioniert so wie auch in der Scriptdoku, damit wir der gesamte Baum nach dem eingegebenen Suchbegriff gefiltert und die passenden Nodes aufgeklappt.
Sollte z.b. wie bei $src$ schon ein Datenpunkt, welcher sich in der Nodeliste befindet, angegeben sein, so wird beim öffnen des Auswahldialogs dieser aufgeschlagen.
soweit der eigentlich noch einfache Teil.
Die Funktion wurde nun auch voll in den Editor intrgriert. Es gab im SDV Editor noch keine vernünftige Auswahl direkt im Editor von Kanälen und Datenpunkten, die verwendete Completion Componente wäre für eine sinnige Baumstruktur darstellen schlicht ungeeignet. Baxxy hatte dieses vor über einem Jahr mal zuerst vorgeschlagen, damals fiel die Umsetzung aber noch flach.
Der Umweg ging bisher über den Inspektor, auswählen des Punktes und dann mit Alt-O den vollqualifizierten ZUgriff im Editor generieren lassen.
Dies geht nun komfortabler:
Die alten Auswahlmethoden über die Completion wurden beibehalten, hinzu kam nun der Menupunkt "Qualifizierter Objektzugriff". Anwahl entweder über Menüpunkt oder über Ctrl-Alt-Space.
Die gleiche Class wie eben auch, aber mit mehr Auswahlmöglichkeiten:
Hier läasst sich wieder in der Baumstruktur das Gewünschte Object grob (auch fein) auswählen, in der Listview dann Feinauswählen. WIe eben auch: doppelklick oder return.
jenachdem, welches Objekt man ausgewählt hat, wird daraufhin im Editor der Vollqualifizierte Zugriff eingetragen.
z.b. Bei einem Enum Raum wird ein
dom.GetObject (ID_ROOMS).Get("DerGewählte Raumname") erzeugt, für alle anderen entsprechenden Objekte auch der dementsprechende qualifizierte Zugriff.
Interfaces, Devices und Channels wählt man in der Baumstruktur aus (Doppelklick oder Enter)
Damit lassen sich nun komfortabel direkt im Editor Datenpunkte auf der CCU auswählen und sich auch automatisch der korrekte qualifizierte Zugriff im Editor generiren, ohne das man über den Inspektor gehen muss.
Weiterer EInsatz (kommt noch) wird dann im Inspektor sein.
Die finale Version gibt es dann morgen oder Samstag, nachdem wir die nochmal gemeinsam im Test verifiziert haben.
Die Abfrage des Dialogs ist auf Geschwindigkeit getrimmt, auf meinem Hauptsystem (4023 Nodes) braucht das Auslesen und das Erzeugen der Nodelists weniger als 500ms (CCU ist ein RPI3, Laptop über WLAN drin während Tochter Netflix schaut, SDV noch mit allen Debug Informationen und Range Checks compiliert). Hier auch wieder das alte Prinzip: CCU liefert die Rohdaten, die AUfbereitung macht dann ein entprechend optimiertes und compiliertes Pascal Programm.
Black
und noch ein Update vom 15.10
auf Wunsch aus dem Anwenderkreis noch schnell einen Editor Tastenkürzel Hilfedialog programmiert, in dem die Tastenkürzel sowie deren Funktionen aufgelistet sind. Zu erreichen ist die Hilfe hier:
und sich hier als dann sich öffnender Dialog darstellt
Generell orientiert sich der Editor des SDV ja, bedingt durch die starke Nähe zur Synedit Componente von Lazarus, auch an der Tastaturbelegung der Lazarus IDE, erweitert um spezifische Spezialfunktionen
Black