Iniwrite Enable wenn Checkbox Aktiv/Haken ist.

  • Moin moin erstmal^^

    habe folgendes problem ich habe nen script gefunden das wenn in der Inputbox was geschrieben wird es als Ini datei Abspeichert und beim nächsten start ausliest und die Inputbox wieder damit füllt, soweit so gut nun ich wollte es so abändern das das script erst Inwrite macht wenn neben der InputBox die Checkbox aktiviert wurde nur ich weis nicht wie^^

    Ich bekomme immer ne fehler Meldung in Line41

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $hGui = GUICreate("Gui", 200, 200)
    $hInput = GUICtrlCreateInput(IniRead("Test.ini", "Sektion", "Input", ""), 10, 10, 100, 20)
    $CheckBox = GUICtrlCreateCheckbox("Speichern", 100, 40)
    GUICtrlSetOnEvent($Checkbox, "_enableSave")
    GUISetState()

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

    While 1

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

    Switch GUIGetMsg()

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

    Case $GUI_EVENT_CLOSE

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

    IniWrite("Test.ini", "Sektion", "Input", GUICtrlRead($hInput))

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

    Exit

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

    EndSwitch

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

    WEnd

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

    Func _enableSave()

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

    If GUICtrlRead($Checkbox) = 1 Then ; Wenn checkbox an dann...

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

    IniWrite($hInput, $GUI_ENABLE) ; soll er Iniwrite aktivieren und wenn nicht...
    Else
    IniWrite($hInput, $GUI_DISABLE) ; soll er die eingabe nicht speichern und weiter machen sprich nächstes Fenster aufmachen usw.
    EndIf

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

    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Huski (14. Juli 2010 um 10:06)

  • [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $foobar = 5
    $hGui = GUICreate("Gui", 200, 200)
    $hInput = GUICtrlCreateInput(IniRead("Test.ini", "Sektion", "Input", ""), 10, 10, 100, 20)
    $CheckBox = GUICtrlCreateCheckbox("Speichern", 100, 40)
    GUICtrlSetOnEvent($Checkbox, "_enableSave")
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    If $foobar = 1 Then
    IniWrite("Test.ini", "Sektion", "Input", GUICtrlRead($hInput))
    Exit
    Else
    Exit
    EndIf
    Case $Checkbox
    $foobar = 1
    EndSwitch
    WEnd

    [/autoit]
  • Also grundsätzlich sind da 2 fehler drin.

    1. Du musst dich für eins von beiden entscheiden: OnEventMode oder GetMsgMode. Beides gleichzeitig geht nicht
    2. Für das speichern in die ini brauchst du grundsätzlich nur eine if abfrage.
    Pseudocode: Wenn checkbox markiert dann speichere ansonsten tue nichts

  • Spoiler anzeigen
    [autoit]

    $hGui = GUICreate("Gui", 200, 200)
    $hInput = GUICtrlCreateInput(IniRead("Test.ini", "Sektion", "Input", ""), 10, 10, 100, 20)
    $CheckBox = GUICtrlCreateCheckbox("Speichern", 100, 40)
    GUISetState()
    While 1
    Switch GUIGetMsg()
    Case -3
    If GUICtrlRead($CheckBox) = 1 Then IniWrite("Test.ini", "Sektion", "Input", GUICtrlRead($hInput)) ; soll er Iniwrite aktivieren und wenn nicht...
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Hmm der Gibt nen Fehler aus : Case without no matching select or switch command. At Line 32.


    danke im vorraus


    MFG Huski

  • So danke nochmal ^^

    Aber ab zum nächsten Prob... fehler meldung beseitigt nur jetzt macht der kein Iniwrite nachdem ich das script schliese^^

    danke im vorraus

    MFG Huski

  • Sry hatte nicht gesehn das Schnitzel 2 optionen geschrieben hatte aber hier schon mal der Code

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $foobar = 5
    $hGui = GUICreate("Gui", 200, 200)
    $hInput = GUICtrlCreateInput(IniRead("Test.ini", "Sektion", "Input", ""), 10, 10, 100, 20)
    $Checkbox = GUICtrlCreateCheckbox("save", 100, 40)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    If $foobar = 1 Then
    IniWrite("Test.ini", "Sektion", "Input", GUICtrlRead($hInput))
    Exit
    Else
    Exit
    EndIf
    Case $Checkbox
    $foobar = 1
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Du sollst dein gesamtes Script zeigen. Das ist nicht das gesamte.
    Außerdem hab ich noch eine kürzere Lösung gepostet:

  • So funktioniert einwandfrei danke euch beiden :thumbup:

    die Kurze version ist ja noch schöner^^


    MFG Huski