Designer-Objekte scriptgesteuert anlegen/löschen

Hallo,

besteht eine Möglichkeit, Objekte im Designer per Script anzulegen, zu beinflussen (z.b visible true/false) und zu löschen?

Das wäre praktisch, um zum Beispiel automatisch Masken für eine beliebige Anzahl Räume oder Heizungsprofile zu verwalten. Man müsste die Maske nur noch per Script definieren und könnte alle Objekte und zugehörigen Verknüpfungen mit IPS-Variablen einfach per Script generieren.

Joachim

Hallo joachimgr,

soweit ich weiß gibt es diese Möglichkeiten nicht.

Die einzige Variante wäre eine direkte Manipulation des Designer-Forms. Das habe ich schon öfter gemacht, z.B. um fertige Seiten in die Tabs des Gesamtprojektes einzufügen oder zu extrahieren.

Da alles selbsterklärend ist, sollte es auch mittels parsing und scripting möglich sein. Aber das Kopieren an die richtige Stelle, um die Änderung speziell auf Remote-Designerterminals auch zu publizieren macht mitunter mehr Aufwand…

Gruß
Fabian

Hallo Joachim,

die Object Inspector Properties Visible und Enabled habe ich mir auch schon öfter als IP-Symcon Properties gewünscht. Damit hätte man vollen Zugriff auf diese Eigenschaften.

Wie Fabian aber schon bemerkt hat, ist das (bisher) leider nicht vorgesehen.

Aber es gibt einen Ausweg:
Du kannst Deine Masken und Formulare in den TabSheets eines PageControl unterbringen. Diese werden dann bei Bedarf zum richtigen Zeitpunkt eingeblendet.

Diese Methode sollte ungefähr den selben Effekt haben.

Gruß
HJH

Das mit den Tabsheets mache ich jetzt. Das hat nur den Nachteil, dass es sehr aufwendig sein kann, ein neues Tabsheets anzulegen.

Beispiel: Ich will für meine Heizungssteuerung Profile anlegen, die dann einzelen Räumen und Tagen zugeordnet werden können. In jedem Profil lässt sich die Temperatur für jede halbe Stunde mit einem Trackbar einstellen. Hinzu kommen diverse andere Einstellmöglichkeiten. Für ein neues Profil muss ich die Objekte des vorhandenen Tabsheet auf ein neues Tabsheet kopieren. Anschließend muss ich so an die 200 Properties und Events per Mausklick zuweisen - das gibt eine Sehnenscheidenentzündung…

Idealerweise müsste es möglich sein, das gesamte Tabsheet mit allen Objekten einmal in einem Script zu definieren und durch Aufruf des Scripts ein neues Tabsheet zu generieren und alle Properties und Events zuzuweisen.

Außerdem wäre bei den Objekten eine Eigenschaft „Veränderbar = True/False“ praktsch. Damit könnte man denn scriptgesteuert die Änderung der eingestellten Werte verhindern.

Vielleicht nehmen die Programmierer ja so etwas mal in die Planung auf…

Joachim

Das mit dem „Veränderbar“ ist natürlich Unsinn. Das ist ja schon mit „Enabled“ möglich, aber leider nicht scriptgesteuert.

Joachim

Hallo Joachim,

da Dein Profile-Sheet ziemlich aufwändig ist, würde ich es an Deiner Stelle nur einmal erzeugen und es so auslegen dass es für alle Räume verwendet werden kann.

Die Auswahl, welcher Raum angezeigt werden soll, erfolgt über eine ComboBox oder über Buttons. Die Werte der 48 TrackBars und andere raumbezogene Werte könnte man in Arrays ablegen. So können dann später beliebig viele weitere Räume aufgenommen werden, ohne dass ein größerer Aufwand erforderlich wäre.

Das heißt, Du kannst Dich bei der Gestaltung des Profile-Sheets so richtig austoben. :wink:

Gruß
HJH