Showing results 1 to 5 of 5

Thread: Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

  1. #1
    Join Date
    29.07.2007
    Location
    Germany
    Posts
    195

    Default Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

    Hallo!

    Ich suche nach einem Weg die Offset-Berechnung einer auf einem Struktur-Datentyp basierend Variable zu ändern.

    Die Variabel lege ich per C# an und muß nach dem Anlegen in diesem Script die Offset-Berechnung ändern.
    In der Eigenschaftshilfe wird dazu folgendes geschrieben:


    Offset-Berechnung

    Selektieren Sie die gewünschte Berechnungsart für den Offset. Folgende Möglichkeiten stehen Ihnen zur Verfügung:

    Adresse folgt Datentyp-Offset und Start-Offset
    Automatische Adressierung
    Manuelle Addressierung
    Mehr im Online-Handbuch

    Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: "OfsSource"


    OfsSource gibt es aber bei der Variabel in C# nicht!

    Im XML-Export der Variable habe ich aber folgendes gefunden:



    FALSE
    FALSE
    FALSE

    Das scheinen die Eigenschaften zu sein welche die Berechnungsart für den Offset beinhalten.
    Diese Eigenschaften finde ich aber weder in C# noch in der Hilfe!

    Kann mir jemand sagen wie ich die Berechnungsart für den Offset per C# anpassen kann?

    Danke im Voraus!

    Gruß,

    H.-P.
    Last edited by hp : 18th January 2013 at 17:05 Reason: Änderung der Titels.
    string zenon = "7.60 Build61612 / 8.00 Build62073/ 8.10 Build62573";
    string Windows = "7 / 10 / 2016";
    string VMware = "Workstation / VMware ESXi";

  2. #2
    Join Date
    29.07.2007
    Location
    Germany
    Posts
    195

    Default AW: Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

    Ich habe beim Suchen im Forum nun doch eine Antwort gefunden:

    http://www.copadata.com/forums/showp...14&postcount=6

    Wird beim Anlegen der Variable "CreateArrayVarEx" benutzt kann die Adressierungsart angegeben werden!


    Nachträglich lässt sich die Adressierungsart wohl nicht mehr ändern!?

    Die nicht vorhandenen Eigenschaften (OfsSource, IsOffsetManuell, OfsAccordingType, IsStartAtNewOffset) aus meinem Eingangspost bringen einen aber trotzdem durcheinander!

    Gruß,

    H.-P.
    string zenon = "7.60 Build61612 / 8.00 Build62073/ 8.10 Build62573";
    string Windows = "7 / 10 / 2016";
    string VMware = "Workstation / VMware ESXi";

  3. #3
    martins Gast

    Default AW: Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

    Quote Originally Posted by hp View Post
    Nachträglich lässt sich die Adressierungsart wohl nicht mehr ändern!?

    Die nicht vorhandenen Eigenschaften (OfsSource, IsOffsetManuell, OfsAccordingType, IsStartAtNewOffset) aus meinem Eingangspost bringen einen aber trotzdem durcheinander!

    Gruß,

    H.-P.
    hallo,

    die Adressierung lässt sich im Nachhinein über die Verwendung des DynProperties "OfsSource" wieder ändern.

    Für nachstehenden Beispielcode habe ich einen Strukturdatentyp erstellt und eine neue Variable namens "StructVar" angelegt, die auf dem Strukturdatentyp basiert.

    Im Editor sieht das folgendermaßen aus (Klick vergrößert das Bild):

    Click image for larger version

Name:	struct.PNG
Views:	13
Size:	11.8 KB
ID:	950

    Der Code zum Modifizieren der Properties sieht folgendermaßen aus:

            public void Macro_ChangeOffset()
            {
                zenOn.IVariable zVar = this.ActiveDocument.Variables().Item("StructVar");
    
                //Automatische Adressierung
                zVar.set_DynProperties("OfsSource", 0);
                //Jeder Datentyp startet mit neuem Offset deaktiviert
                zVar.set_DynProperties("IsStartAtNewOffset", false);
                //Jeder Datentyp startet mit neuem Offset aktiviert
                zVar.set_DynProperties("IsStartAtNewOffset", true);
    
                //Adresse folgt Datentyp-Offset und Start-Offset
                zVar.set_DynProperties("OfsSource", 1);
    
                //Manuelle Adressierung
                zVar.set_DynProperties("OfsSource", 2);
            
            }

    Ich hoffe, das hilft weiter

    lg
    Martin

  4. #4
    Join Date
    29.07.2007
    Location
    Germany
    Posts
    195

    Daumen hoch AW: Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

    Hallo Martin!

    Danke für die Info!

    Ja Ja, die DynProperties, da findet man immer vieles nur ist es nicht so offensichtlich und man übersieht auch gerne was...

    Ich wühle mich gerade durch die DynProperties einer Mathevariable


    Gruß,

    H.-P.
    string zenon = "7.60 Build61612 / 8.00 Build62073/ 8.10 Build62573";
    string Windows = "7 / 10 / 2016";
    string VMware = "Workstation / VMware ESXi";

  5. #5
    martins Gast

    Default AW: Ändern der Offset-Berechnung per C# bei Variablen basierend auf Struktur-Datentyp

    Quote Originally Posted by hp View Post
    Hallo Martin!

    Danke für die Info!

    Ja Ja, die DynProperties, da findet man immer vieles nur ist es nicht so offensichtlich und man übersieht auch gerne was...

    Ich wühle mich gerade durch die DynProperties einer Mathevariable


    Gruß,

    H.-P.
    hallo,

    bitte gerne

    ich gehe oftmals den Weg des Reverse Engineerings, indem ich mir über get_DynProperties einfach mal den bestehenden Wert auslese, einfach mal nach Geschmack modifiziere und wieder zurückschreibe. Das funktioniert so gut wie immer

    Meistens ist es so, dass die Properties den selben Namen wie im XML Export haben - eigentlich quasi immer. Das hier ist der erste Fall den ich persönlich sehe, wo das exportierte XML einen auf die falsche Fährte bringen kann.

    Ansonsten - DynPropertiesEnum funktioniert eigentlich immer

    string[] props = (string[])zenonElement.get_DynPropertiesEnum("");
    
    foreach (string s in props)
    {
        this.Application.DebugPrint(s, zenOn.tpDebugPrintStyle.tpNrm);
    }


    Diese kleine Funktion schreibt alle DynProperties eines Elements in das Ausgabefensters des zenon Editors.

    Erster String: Name
    Zweiter String: verwendeter Datentyp
    Dritter String: Beschreibung des Properties
    Vierter String: Gruppierung des Properties für die leichtere Auffindbarkeit

    Ich wünsche gutes Gelingen

    lg

Similar Threads

  1. Replies: 5
    Last Post: 11th March 2014, 15:13
  2. Größe der Schblone zur RT ändern
    By sniggi in forum VBA
    Replies: 2
    Last Post: 4th December 2012, 17:01
  3. Statischer Text bei Bildaufruf ändern
    By marhard in forum zenon Service Engine Supervisor
    Replies: 1
    Last Post: 12th July 2012, 11:07
  4. Variable 'xyz'' wurde nicht geladen da Typ mite der Datentyp ID '63' fehlt!
    By jung_dieffenbacher in forum zenon Service Engine Supervisor
    Replies: 1
    Last Post: 26th November 2008, 16: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
  •