Zugriff auf Objekte im Vorlagenbild

SvenMarek

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.
Ich möchte über ein Skript auf Objekte (Schalter usw.) aus dem Vorlagenbild zugreifen.
Nur leider wird bei
Set Menue = HmiRuntime.Screens("Vorlage").ScreenItems("Button")
nicht akzeptiert.

Weiß jemand, wie ich auf das Vorlagenbild komme?

Grüßle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich will einen dynamischen Menübaum erstellen.

Dabei sollen fehlende Menüpunkte ausgeblendet werden und die nachfolgenden nach oben aufrutschen, sodass keine Lücke entsteht.

Deshalb sollte ich auf die Objekte im Vorlagenbild zugreifen, um über HmiRuntime...Top= die Position der einzelnen Schaltflächen zuordnen kann.

Oder gibts ne andere Möglichkeit dies zu tun?

Grüßle
 
würde es geben ist aber mit ziemlich aufwand verbunden.
So wie ich Festgestellt hab kannst die Objekte im Vorlagenbild mit ihrem Namen und der Variante

Set Menue = HmiRuntime.ActiveScreen.Screenitems("...") (Name wie im Vorlagenbild definiert)

ansprechen. Die objekte aus dem Vorlagenbild sind als Objekte im jeweiligen Bild ansprechbar nur das sie in jedem Bild vorteilhafterweise den gleichen Namen haben, was das ganze vereinfacht. Aber damit nen dynamisches Menue zu basteln dürfte doch recht schwer werden.
Machbar ist das sicher indem du bei Bildanwahl ein Script rennen lässt was erstmal alles ausblendet und dann ein zweites was die gewünschten Elemente des jeweiligen Bildes wieder einblendet und Positioniert.

grüße
Aranel
 
Hey Aranel,
hat super funktionier - vielen Dank!

Habe es allerdings mit HmiRuntime.Screens("Home").ScreenItems("Vorlage_Button")
hinbekommen, da die Objekte der Vorlage in sämtlichen Bildern vorhanden sind.

Aber nun noch eine Frage:
Wie kann ich das Atribut "Vorlage_Button" variabel gestalten? Sprich die Bezeichnung des Objekts als Parameter übergeben?

Grüßle
 
Hey Aranel,
hat super funktionier - vielen Dank!

Habe es allerdings mit HmiRuntime.Screens("Home").ScreenItems("Vorlage_Button")
hinbekommen, da die Objekte der Vorlage in sämtlichen Bildern vorhanden sind.

Aber nun noch eine Frage:
Wie kann ich das Atribut "Vorlage_Button" variabel gestalten? Sprich die Bezeichnung des Objekts als Parameter übergeben?

Grüßle

Als Item-Namen kann man eine Variable angeben.
 
hallo repök,
hab's mal so probiert:

Dim Position(10)
Position(1)="B_Home"
Set ButtonHome = HmiRuntime.Screens("Home").ScreenItems(Position(1))

funktioniert aber nich, denn ein anschließendes

ButtonHome.Visible=0

wird nicht ausgeführt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ICh hab noch was gefunden, dank deiner Anregung Sven

Dim Menue
Dim Obj(10)
If HmiRuntime.ActiveScreen.ObjectName = "Bild_1" Then
Obj(1) = "Vorlage_Schaltfläche"
Set Menue = HmiRuntime.ActiveScreen.ScreenItems(Obj(1))
Menue.Visible = False
Else Exit Sub
End If

das hat funktioniert.
Wobei die zuweisung der schaltfläche sicher auch vorher erfolgen kann.
aber wenn ich nun in bild_1 stehe und das script aufrufe wird der Button ausgeblendet. Steh ich woanders bleibt er wie er ist.
Allerdings könnte ein dynamisches Menü einigs an script erfordern so daß die Performance des gerätes arg leiden könnte.

gruß
Aranel
 
das muss so funktionieren. allerdings bricht flex die skript-bearbeitung einfach ab, wenn ein fehler auftaucht. meine ich mal gelesen zu haben. den fehler kann man sich über ein pop-up anzeigen lassen.
Code:
set pop = CreateObject("WScript.Shell")
 
blablubb
 
if (Err.Number<>0) then pop.popup("Fehler: "&Err.Description)

das hilft oftmals weiter.
 
Zurück
Oben