Checkbox speichern

  • Wie macht man es das wenn ich Jetzt in meinem programm auf eine Checkbox klicke es gespeichert wird so das es beim nächsten mal wieder so ist wie vorher?

    Meine Projekte :

    Taschenrechner [X]
    JamLegend Auto-Player [Canceld]
    Launcher [X]
    Multi-Game-Quest-Viewer [Canceld]


    [autoit]

    If $goffy or not $brain Then $DeleteInetCable

    [/autoit]
  • Mhmm...könntes du mir dafür ein beispiel code geben ?
    In der Hilfe habe ich nichts dazu gefunden :/

    Das wird dann aber ne große .ini xD

    Locker 200 Einträge ^^

    Meine Projekte :

    Taschenrechner [X]
    JamLegend Auto-Player [Canceld]
    Launcher [X]
    Multi-Game-Quest-Viewer [Canceld]


    [autoit]

    If $goffy or not $brain Then $DeleteInetCable

    [/autoit]
    • Offizieller Beitrag

    Wenn es größer wird - mit Array arbeiten.
    Mal als grobes Bsp.:

    Spoiler anzeigen
    [autoit]

    Local $INI = @ScriptDir & '\MEINE.INI' ; <== deine INI-Datei

    [/autoit] [autoit][/autoit] [autoit]

    Local $aCheckBox[200][2] ; <== zum Speichern Checkbox-ID und Status

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists($INI) Then ; wenn INI noch nicht existiert, wird sie angelegt
    For $i = 0 To UBound($aCheckBox) -1
    IniWrite($INI, 'settings_CB', 'CheckBox' & $i, 0) ; erster Wert 0=UNCHECKED
    $aCheckBox[$i][1] = 0
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;...
    ;...

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI erstellen und Checkboxstatus auslesen - setzen
    $gui = GUICreate('..')
    For $i = 0 To UBound($aCheckBox) -1
    $aCheckBox[$i][0] = GUICtrlCreateCheckbox('...', .....)
    $aCheckBox[$i][1] = IniRead($INI, 'settings_CB', 'CheckBox' & $i, 0)
    If $aCheckBox[$i][1] Then
    GUICtrlSetState($aCheckBox[$i][0], $GUI_CHECKED)
    Else
    GUICtrlSetState($aCheckBox[$i][0], $GUI_UNCHECKED)
    EndIf
    Next

    [/autoit]
  • Hallo Goldy,

    so z.B.:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Global $Checkbox1, $Checkbox2, $Checkbox3, $Checkbox4, $chk1, $chk2, $chk3, $chk4
    Global $ini = @ScriptDir & "\CheckBox.Test"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $chk1 = IniRead($ini, "Checks", "1", False)
    $chk2 = IniRead($ini, "Checks", "2", False)
    $chk3 = IniRead($ini, "Checks", "3", False)
    $chk4 = IniRead($ini, "Checks", "4", False)
    GUICreate("Ckeckbox-Demo MSG-LOOP-Modus", 300, 300)

    [/autoit] [autoit][/autoit] [autoit]

    $Checkbox1 = GUICtrlCreateCheckbox("1. Checkbox", 20, 40, 1250)
    GUICtrlSetState(-1, $chk1)
    $Checkbox2 = GUICtrlCreateCheckbox("2. Checkbox", 20, 70, 1250)
    GUICtrlSetState(-1, $chk2)
    $Checkbox3 = GUICtrlCreateCheckbox("3. Checkbox", 20, 100, 1250)
    GUICtrlSetState(-1, $chk3)
    $Checkbox4 = GUICtrlCreateCheckbox("4. Checkbox", 20, 130, 1250)
    GUICtrlSetState(-1, $chk4)
    $DL = GUICtrlCreateButton("Download", 50, 250, 80)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    IniWrite($ini, "Checks", "1", GUICtrlRead($Checkbox1))
    IniWrite($ini, "Checks", "2", GUICtrlRead($Checkbox2))
    IniWrite($ini, "Checks", "3", GUICtrlRead($Checkbox3))
    IniWrite($ini, "Checks", "4", GUICtrlRead($Checkbox4))
    Exit
    Case $DL
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "1. Checkbox", "ist angeCHECKED")
    ;InetGet verwenden zum downloaden
    Else
    MsgBox(0, "1. Checkbox", "ist nicht angeCHECKED")
    EndIf
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "2. Checkbox", "ist angeCHECKED")
    Else
    MsgBox(0, "2. Checkbox", "ist nicht angeCHECKED")
    EndIf
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "3. Checkbox", "ist angeCHECKED")
    ;InetGet verwenden zum downloaden
    Else
    MsgBox(0, "3. Checkbox", "ist nicht angeCHECKED")
    EndIf
    If BitAND(GUICtrlRead($Checkbox4), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "4. Checkbox", "ist angeCHECKED")
    Else
    MsgBox(0, "4. Checkbox", "ist nicht angeCHECKED")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Mhmm...könntes du mir dafür ein beispiel code geben ?
    In der Hilfe habe ich nichts dazu gefunden :/

    du solltest lernen mit dem wichtigsten Werkzeug der Hilfe umzugehen, und dir vor allem einmal die Stanadard-Funktionen (ohne UDFs) durchlesen, notfalls mehrmals.

    mfg autoBert


  • Also müsste ich :

    [autoit]

    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "1. Checkbox", "ist angeCHECKED")
    ;InetGet verwenden zum downloaden
    Else
    MsgBox(0, "1. Checkbox", "ist nicht angeCHECKED")
    EndIf

    [/autoit]

    Immer wieder wiederholen bis ich an meine zur zeit 60 Checkboxen bin?

    Meine Projekte :

    Taschenrechner [X]
    JamLegend Auto-Player [Canceld]
    Launcher [X]
    Multi-Game-Quest-Viewer [Canceld]


    [autoit]

    If $goffy or not $brain Then $DeleteInetCable

    [/autoit]
  • Hallo Goldy,

    dir ging es doch nur um das speichern, laden. Den Skriptteil mit den MsgBoxen brauchst du doch dazu gar nicht. Du Kannst aber die ControlIds auch in einem Array speichern und dann in einer Schleife (am besten For ... Next) alle durchgehen,

    mfg autoBert