VbScript - Aktives Element erkennen?

Sickone4

Level-2
Beiträge
68
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute.

Ich habe folgendes vor:

Ich habe 52 EA Felder, die ich "gegeneinander" prüfen möchte.
Wenn der eingegebene Wert = einem Wert ist, der schon vorhanden ist färbe beide hintergründe ein.
D.h. bei abgeschlossener Eingabe soll das Script ausgeführt werden nach diesem Prinzip:
var steht hier stellvertretend für den variablennamen ohne index

Code:
Dim tmp, aktivesElement, pruefElement

for tmp = 1 to 52

           Set aktivesElement = HmiRuntime.Screens("Bild").ScreenItems("aktivesElement")
           Set pruefElement = HmiRuntime.Screens("Bild").ScreenItems("pruefElement")

                if aktivesElement = SmartTags("var" & tmp) then
                          aktivesElement.backColor = rgb(255,0,0)
                          pruefElement.backColor = rgb(255,0,0)
                end If

next


folgende Probleme habe ich: das aktive und pruef Element kann ich nicht erfassen, da das Script quasi global sein soll.

ich müsste also herausfinden, mit welcher variable das script arbeiten soll.
zudem kann ich ein via Set definiertes Element nicht mit einem laufindex verknüpfen.
dazu bräuchte ich ein wenig hilfe

vielen dank

sven
 
Hallo,
du mußt für so etwas allerdings schon die Namen deiner Objekte auf dem jeweiligen Bild kennen - diese Namen mußt du ja ScreenItems übergeben.
Mein Vorschlag wäre hier : du gibst den relevanten Bildelementen statt dem vom System automatisch vergebenen Namen einen eigenen Namen (das könnte z.B. auch Eingabe_01 bis Eingabe_52 werden). Nun könntest du mit dem Script gezielt suchen - vielleicht in etwa so :
Code:
for ae = 1 to 52
   Set aktivesElement = HmiRuntime.Screens("Bild").ScreenItems("Eingabe_"+right(str(100+ae),2))
   for pe = 1 to 52
      Set pruefElement = HmiRuntime.Screens("Bild").ScreenItems("Eingabe_"+right(str(100+pe),2))

      // und nun dein Vergleich - allerdings an den Eigenschaften des adressierten Objektes
   next
next
Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Larry.
bin leider erst gerade dazu gekommen, aber irgendwie akzeptiert mein wincc flex das string replace nicht.
der kringelt str ein.... und in der hilfe finde ich keine syntax um es zu korrigieren.


gruß sven
 
Zurück
Oben