Showing results 1 to 7 of 7

Thread: Anpassung COMBI-Element

  1. #1
    niclasfl Gast

    Default Anpassung COMBI-Element

    Hallo,

    ich möchte ein Combi-Element dynamisch anpassen.

    Aufgabe ist es den Defaultzustand um mehrere neue Werte zuergänzen und diesen einen Text und Wert zuzuweisen.

    Mein erster Entwurf hinkt leider etwas.


    Sub combi_change()
    Dim myScr As DynPicture
    Set myScr = MyWorkspace.ActiveDocument.DynPictures.Item("Test_Bild")
    If Not myScr Is Nothing Then
    Dim myElem As Element
    Set myElem = myScr.Elements.Item("Combi_Element")
    On Error Resume Next
    If Not myElem Is Nothing Then
    'Hier sollte der neue Wert erzeugt werden der dann die Bezeichnung und den Auslösenden Wert bekommt

    myElem.DynProperties("States[1].TextOrBitmap") = "Bezeichnung_1" ' Funktioniert
    myElem.DynProperties("States[1].ValueMask") = 200 ' Funktioniert nur teilweise die nicht betroffenen Felder bleiben auf Punkt stehen wollte dann hier eine Null

    End If
    myScr.Save
    End If
    End Sub



    Danke
    Attached Thumbnails Attached Thumbnails Combi-Element.png  
    Last edited by niclasfl : 1st July 2014 at 11:10

  2. #2
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Anpassung COMBI-Element

    - das Combi-Element im Editor wie gewünscht konfigurieren (z.B. auf ein speraretes Bild ziehen wo dann nur dieses Element platziert ist)
    - das bild *.xml exportieren
    - mit xml notepad 2007 die *.xml datei öffnen (ist auf der zenon DVD verfügbar)
    - im *.xml ist dann ersichtlich welche parameter angegriffen werden müssen
    -> diese paramter sind dann die zu verwendeten DynProperties bzw. deren Wert ist auch ersichtilch

    gruß,
    herbert


  3. #3
    niclasfl Gast

    Default AW: Anpassung COMBI-Element

    Hallo danke für die schnelle Antwort,

    finde leider keinen Parameter mit dem ich einen neuen Wert erzeugen kann, denn ich dann mit

    myElem.DynProperties("States[1...100].TextOrBitmap") = "Bezeichnung_1...100"

    bearbeiten kann.

  4. #4
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Anpassung COMBI-Element

    Das Hinzufügen von DynProperties wird mit CreateDynProperty() durchgeführt

    Vielleicht wäre folgender Weg unkomplizierter
    - alle Combi-Element Stati im zenon Editor erzeugen und dann per VBA modifzieren
    - sollte das Combi-Element mehrmals verwendet werden dann ein symbol daraus erzeugen in die projektbibliothek schmeissen... und dann kann dieses dann per drag&drop auf das bild gezogen werden... und die eingangsvariable ersetzt werden


  5. #5
    niclasfl Gast

    Default AW: Anpassung COMBI-Element

    Hi Danke,

    CreateDynProperty() funktioniert super.

    Der Gedanke ist folgender, pro Combi-Element gibt es ca. 256 Werte, die dann per @Bezeichnung dynamisch aus einer Datei substituiert werden, dies geschieht dann für die jeweiligen Bilder separat.

  6. #6
    niclasfl Gast

    Default AW: Anpassung COMBI-Element

    Hi habe noch ein kleines Problem

    Wenn ich meinem erzeugten Combi Element nun noch eine Haupt-Variable zuordnen möchte bleibt diese aus.
    Bei einem Zahlenwert Element geht dies jedoch Problemlos???
    Vielen Dank für die schnelle und kompetente Hilfe.

    Dim Pro as Project
    Dim myElem As Element

    Set Pro = MyWorkspace.ActiveDocument
    Set myElem = myScr.Elements.Item("Combi_Element")
    If Not myElem Is Nothing Then
    Set TestVar = Pro.Variables.Item("TestVar")
    MyElem.addVariable TestVar
    End If

  7. #7
    Join Date
    28.06.2013
    Posts
    21

    Default AW: Anpassung COMBI-Element

    Quote Originally Posted by niclasfl View Post
    Hi habe noch ein kleines Problem

    Wenn ich meinem erzeugten Combi Element nun noch eine Haupt-Variable zuordnen möchte bleibt diese aus.
    Bei einem Zahlenwert Element geht dies jedoch Problemlos???
    Vielen Dank für die schnelle und kompetente Hilfe.

    Dim Pro as Project
    Dim myElem As Element

    Set Pro = MyWorkspace.ActiveDocument
    Set myElem = myScr.Elements.Item("Combi_Element")
    If Not myElem Is Nothing Then
    Set TestVar = Pro.Variables.Item("TestVar")
    MyElem.addVariable TestVar
    End If


    Hallo,

    wenn ich das richtig verstanden habe möchtest du die Variable für das Combi-Element vergeben damit sie bei der Konfiguration in der rechten Listbox angezeigt wird?


    Das funktioniert bei den Combi-Elemente etwas anders.
    Zur Sicherheit ist immer gut wenn du weißt wie viele Variablen du benötigt wenn du mit einer Schleife kontrollierst wie viele Variablen sich bereits drinnen befinden und dann noch weitere hinzufügen bzw. bearbeiten kannst.

        countVar = dasElement.DynProperties("DynEleVar[-1]")
        If countVar < 4 Then
            Dim i As Integer
            For i = countVar + 1 To 4
              dasElement.CreateDynProperty ("DynEleVar")
            Next i
        End If

    Und dann kann man Variablen hinzufügen:

    dasElement.DynProperties("DynEleVar[0].ProjectVar") = MyWorkspace.Application.Projects.Item(cbSteuerung.value).Variables.Item("VAR")

Similar Threads

  1. Combi-Element in Symbolbibliothek
    By michab in forum zenon Supervisor
    Replies: 4
    Last Post: 30th March 2017, 09:02
  2. Combi Element Test Mode Issue
    By stolyarov_as in forum zenon Supervisor
    Replies: 2
    Last Post: 24th March 2014, 12:20
  3. Checking if a combi-element is locked
    By ptk_mzeh in forum VSTA
    Replies: 1
    Last Post: 11th September 2012, 09:59
  4. Combi-Element per VBA anpassen
    By niclasfl in forum VBA
    Replies: 2
    Last Post: 9th August 2012, 18:19
  5. Combi Element
    By hoscillada in forum zenon Supervisor
    Replies: 4
    Last Post: 16th December 2009, 22:51

Posting Rules

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