bugfix - alle control Inhalte in einer ini speichern

  • Hallo,

    Bugfix hat vor einigen Jahren ein interessantes Script geschrieben, mit dem man den Inhalt einiger Controls in einer ini-Datei speichern und wiederherstellen kann.

    Dieses Script befindet sich mit im Dateianhang als "org.au3", ist nach minimalen Änderungen jetzt lauffhäig.

    Kennt Ihr Euch mit ISN so gut aus, dass Ihr das Script so anpassen könnt, dass es auch mit einer (jeder) Oberfläche lauffähig ist, die in ISN erstellt wurde?

    Die hochgeladene Datei ist eine als zip umbenannte rar Datei, weil die Forumssoftware rar nicht erlaubt - weiß jemand, warum nicht?

    Falls es Probleme gibt, kann ich die Dateien auch einzeln hochladen.

    Zum Thema:

    Die in Analogie zum Script von Bugfix aufgebaute Oberfläche liegt in der "test.isf".

    Das darauf basierende Script ist in der "test.au3" und endet mit Fehlermeldungen wie:

    Cannot assign values to constants.:

    $CB1 = GUICtrlCreateCheckbox("Check 1",20,20,82,20,-1,-1)

    ^ ERROR

    Wer ISN verwendet, kann die test.isn als Projekt öffnen.


    (2) Wenn Beispiel 1 läuft, komme ich zu Frage 2.

    Wie kann man das Script von Bugfix so anpassen, dass es für jede Oberfläche verwendet werden kann, die mit ISN erstellt wird?

    Dazu ist vielleicht nur 1 Zwischenschritt notwendig.

    Der untenstehende Quellcode müsste ausgetauscht werden gegen ein Script, welches aus der GUI $Form_01 alle Controls auslesen und wie unten stehend speichern kann. Kennt Ihr eine Umsetzung?

    Code
    ; Indizes festlegen für die zu erstellenden Ctrl (RB=Radio, IN=Input, etc.)
    Local Enum $CB1, $CB2, $IN1, $IN2, $RB1, $RB2, $iAnzahl
    ; Array für die CTRL erstellen
    Local $aCtrl[$iAnzahl]
  • Federn schmücken

    Hier der passende Federschmuck :)

    Inputboxen speichern Array

    PS: Habe lange nach einer Variante gesucht und viel getestet, um alle Controls einer Form einzulesen und den Inhalt in einer ini-Datei zu speichern. Was dem Ziel am nächsten kam, ist Dein Script.

    PS 2: Kennst oder benutzt Du ISN AutoIt Studio aus dem Forum? Wenn ja, erhöht das die Chancen, Dein Script zu implementieren.

    Einmal editiert, zuletzt von Banana_2_Day (21. September 2020 um 22:49)

  • Hallo

    Du musst in dem Fall auch im ISN Form Studio die Controls mit dem vollständigem handle deklarieren, damit das Beispiel von BugFix läuft.
    Zb. hast du in der .isf Form bei einer Checkbox nur $CB1 als Handle angegeben. Das Beispiel vordert hier aber ein Array. Also sollte hier $aCtrl[$CB1] angegeben werden. Und das gilt natürlich auch noch für die anderen controls.
    Des weiteren muss in der. isf in den GUI Eigenschaften das GUI Handle noch auf $hGui geändert (wie im Beispiel), und schon läuft das ganze. ;)

    Hab dir im Anhang mal die "gefixte" .isf Datei angehängt.