Page 2 of 2 FirstFirst 1 2
Showing results 11 to 15 of 15

Thread: Dynamische Werteanzeige im Popup

  1. #11
    Join Date
    30.12.2010
    Posts
    23

    Default Re: Dynamische Werteanzeige im Popup

    Hallo MST
    Besten Dank für die rasche Antwort!!!
    Genau da liegt mein Problem, beim Substituieren der Variablen. Ich habe schon X-mal die Hilfe und einige Forumbeiträge gelesen für das Substituieren der Variablen, doch irgendwie bin ich zu doof dies umzusetzten.
    Irgend etwas mache ich einfach komplett falsch.
    Deswegen hier noch ein paar Fragen:
    - muss das Popup in die Projekt-Symbolbibliothek eingefügt werden damit die Substitution funktioniert?
    - Werden die Variablen im Popup tatsächlich ersetzt? (wenn ich in der Runtime mit der rechten Maustaste auf das Textfeld klicke erscheint dann die ersetzte Variable oder immer noch die Dummy-Variable?)
    - Muss ich in der Bildumschaltfunktion noch etwas bestimmtes angeben (zBsp. etwas bei Indizes ersetzen?)
    - Mein Button um das Popup zu öffnen kommt aus der Symbol-Bibliothek. Wenn nun der Button betätigt wird um das Makro auszulösen übergebe ich ja nur den Button-Name. Nun kann ich ja mit "obElem.StationName" auf den Symbolnamen zugreifen. Hier sehe ich in deinem Code den Zusammenhang noch nicht, Sorry )

    In meiner Funktion "Bildumschaltung" sind die Dummy-Variablen sichtbar (unter dem Register "Verknüpfungen ersetzten"

    Danke für deine/eure Hilfe

  2. #12
    Join Date
    10.12.2007
    Posts
    181

    Default AW: Dynamische Werteanzeige im Popup

    Erstmal die Antworten in aller Kürze:
    - nein
    - ja
    - Variablen ersetzen
    - Symbolname ist uninteressant

    Also, Du brauchst weder einen unsichtbaren Button, noch ein Bibliothekssymbol.

    Ich gehe davon aus, dass Du ein Bild hast, in dem z.B. ein Zahlenfeld mit einer Variable "Motor1.Speed" hast.
    Ausserdem gibt es ein Popup-Bild mit einem Zahlenfeld das in der Projektierung die Variable "Dummy.Speed" beinhaltet.
    Jetzt legst du zuerst eine Funktion z.B. "Bildumschaltung_Popup" an, die eben als eine Bildumschaltung auf da Popup Bild projektiert wird. Nach der Auswahl des Bildes erscheint der Substitutionsdialog. Wenn Du hier nichts änderst, dann wird zur Runtime im Popup-Bild die Variable Dummy.Speed angezeigt. Aber das wollen wir ja nicht. Also gibst du im Substitutionsdialog an, dass die Variable Dummy.Speed durch Motor1.Speed ersetzt werden soll. Wenn du jetzt die Funktion in der Runtime ausführst, dann erscheint statt der Dummy.Speed Variable die Motor1.Speed Variable. Das kannst Du auch mit Rechtsklick überprüfen.
    So jetzt gibt es also eine Funktion "Bildumschaltung_Popup" die Variablen im Bild ersetzt. Die Aufgabe des Makros ist jetzt bloß noch diese Ersetzungen dynamisch zu ändern und zwar abhängig davon welche Variable an dem Element angebunden ist, dass das Makro startet.

    Leg dir im zenon Editor unter Programmierschnittstellen -> Makroliste -> ModuleElement -> LeftClickUp ein neues Makro an und gib ihm den Namen "Popup".
    zenon erzeugt daraus im ModuleElement ein Makro "LeftClickUp_Popup(obElem as Element)"
    Diese Makro kannst du dann im zenon Editor z.B. an ein Zahlenfeld anbinden.
    Der Witz daran ist, dass das Makro als Übergabeparameter das Element mitgeliefert bekommt auf da geklickt wurde.
    Das Makro kann dann aus dem übergebenen Element wiederum die angebundene Variable auslesen (obElem.ItemVariable(0)) und die Substitution in der Funktion "Bildumschaltung_Popup" so ändern, dass die richtigen Variablen erscheinen.


    War das jetzt klarer?

  3. #13
    Join Date
    30.12.2010
    Posts
    23

    Default Re: Dynamische Werteanzeige im Popup

    Vielen vielen Dank für diese Anleitung!!!!

    Endlich kapiere ich das Vorgehen. Habe nie kapiert, dass ich tatsächlich im Substitutionsdialog für ein einziges mal die Variable ersetzten muss .
    Habe zudem immer den Umweg über den Elementnamen gemacht (obElem.Name) anstelle von obElem.ItemVariable(0).
    Das ist für mich die perfekte Anleitung!!!!!
    Werde dies am Montag gleich einmal ausprobieren
    Ich hoffe nur noch, dass ich einen Weg finde um mehrere Variablen zu substituieren, denn im Popup habe ich fünf verschiedene Variablen (Motor1.STA, Motor1.CMD, Motor1.SpeedSP usw.) und für den Button (ist leider nicht nur ein gewöhnlicher Button sonder darauf gibt es noch weitere Elemente) habe ich jedoch nur die Variable Motor1.STA.
    Ich werde einfach einmal probieren

    Ich wünsch dir noch ein schönes Wochenende

  4. #14
    Join Date
    10.12.2007
    Posts
    181

    Default AW: Dynamische Werteanzeige im Popup

    Dann musst du dir eben den entsprechenden Teil des Variablennamens raussuchen und ersetzen. z.B.:
    Public Sub LeftClickUp_Popup(obElem As Element)
    Dim zFct As RtFunction
    Dim i as long
    Dim strTemp As String
    dim strName() as String
    
    If obElem.CountVariable = 0 Then Exit Sub
    strName=Split(obElem.ItemVariable(0).Name, ".")
    
    Set zFct = thisProject.RtFunctions.Item("Bildaufruf_Popup")
    For i = 0 To CLng(zFct.DynProperties("PictSwitch.SubstiVar[-1]")) - 1
        strTemp = zFct.DynProperties("PictSwitch.SubstiVar[" & CStr(i) & "].Source")
        zFct.DynProperties("PictSwitch.SubstiVar[" & CStr(i) & "].Destination") = Replace(strTemp, "Dummy", strName(0))
    Next i
    zFct.Start
    Set zFct = Nothing
    
    End Sub
    Jetzt wird alles was im Bild mit Dummy beginnt mit z.B. Motor1 ersetzt. Egal wie viel Variablen im Bild sind.

  5. #15
    martins Gast

    Default Re: Dynamische Werteanzeige im Popup

    hi,

    also ich habe das folgendermaßen gelöst:

    - Eine Funktion angelegt, die Indizierung verwendet - ich indiziere auf die Variable IndVar und ersetze dann dementsprechend, was da drinnen steht, meine Variablen im Popup.

    - Im Symbol den Namen fürs Weltbild zweckentfremdet und herausgezogen, um den zu indizierenden String herauszulesen.

    - Ein LeftClickUp Event auf das Combi-Element, um den StationName (den Namen fürs Weltbild) aus dem Element zu lesen und auf die Indizierungsvariable zu schreiben und danach direkt die Bildumschaltung auszuführen

    Das angehängte Projekt ist für 6.51 - wie auf Wunsch sollte aber natürlich hochkonvertiert immer noch funktionieren

    lg
    Martin
    Attached Files Attached Files

Similar Threads

  1. Dynamische Listbox mit Multiselect...
    By hp in forum zenon Supervisor
    Replies: 1
    Last Post: 4th July 2013, 10:10
  2. Dynamische Seitenanzahl im Report Viewer
    By gralex in forum zenon Supervisor
    Replies: 2
    Last Post: 27th March 2013, 08:54
  3. Popup variables
    By dietersar in forum VBA
    Replies: 5
    Last Post: 28th February 2013, 12:56
  4. Dynamische Grenzwerttexte
    By affoltep in forum Drivers
    Replies: 3
    Last Post: 3rd March 2010, 23:28
  5. Dynamische Onlinevariablen im Container
    By bzoller in forum VBA
    Replies: 10
    Last Post: 25th September 2008, 14:45

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •