Hi Leute
Ich möchte Konfigurationen als Ini Datei abspeichern und diese beim nächsten Start des Konfigurationsprogramms wieder eintragen.
Sprich ich möchte, dass die Häkchen immer vorhanden sind, wenn man das Programm startet.
Das ist der Code:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <Array.au3>
$Anzahl = 5
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Form1", 777, 20*$Anzahl+60, 193, 125)
$Save = GUICtrlCreateButton("Speichern", 670, 20*$Anzahl+35,80,20)
$Graphic1 = GUICtrlCreateGraphic(160, 24, 17, 17)
$Graphic2 = GUICtrlCreateGraphic(192, 24, 17, 17)
$Graphic3 = GUICtrlCreateGraphic(248, 24, 17, 17)
$Graphic4 = GUICtrlCreateGraphic(288, 24, 17, 17)
$Graphic5 = GUICtrlCreateGraphic(328, 24, 17, 17)
$Graphic6 = GUICtrlCreateGraphic(368, 24, 17, 17)
$Graphic7 = GUICtrlCreateGraphic(440, 24, 17, 17)
$Graphic8 = GUICtrlCreateGraphic(480, 24, 17, 17)
$Graphic9 = GUICtrlCreateGraphic(520, 24, 17, 17)
$Graphic10 = GUICtrlCreateGraphic(560, 24, 17, 17)
$Graphic11 = GUICtrlCreateGraphic(632, 24, 17, 17)
$Graphic12 = GUICtrlCreateGraphic(672, 24, 17, 17)
$Graphic13 = GUICtrlCreateGraphic(744, 24, 17, 17)
$Label2 = GUICtrlCreateLabel("Label2", 8, 8, 60, 28)
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
Dim $CheckST[$Anzahl+1], $CheckSC[$Anzahl+1], $CheckAK[$Anzahl+1], $CheckBS[$Anzahl+1], $CheckSP[$Anzahl+1], $CheckLK[$Anzahl+1], $CheckBB[$Anzahl+1], $CheckSK[$Anzahl+1], $CheckRA[$Anzahl+1], $CheckKA[$Anzahl+1], $CheckAG[$Anzahl+1], $RadioO[$Anzahl+1], $RadioD[$Anzahl+1]
For $i = 1 To $Anzahl ;Create Checkbox
$Label1 = GUICtrlCreateLabel("Label" & $i, 8, 17+$i*20, 124, 17)
GUIStartGroup()
$RadioO[$i] = GUICtrlCreateRadio("", 160, 17+$i*20, 17, 17)
$RadioD[$i] = GUICtrlCreateRadio("", 192, 17+$i*20, 17, 17)
$CheckST[$i] = GUICtrlCreateCheckbox("", 248, 17+$i*20, 17, 17)
GUICtrlSetState($CheckST[$i],IniRead(@ScriptDir & "\temp.ini",$i,"ST",""))
MsgBox(0,"0",IniRead(@ScriptDir & "\temp.ini",$i,"ST",""))
$CheckSC[$i] = GUICtrlCreateCheckbox("", 288, 17+$i*20, 17, 17)
$CheckAK[$i] = GUICtrlCreateCheckbox("", 328, 17+$i*20, 17, 17)
$CheckBS[$i] = GUICtrlCreateCheckbox("", 368, 17+$i*20, 17, 17)
$CheckSP[$i] = GUICtrlCreateCheckbox("", 440, 17+$i*20, 17, 17)
$CheckLK[$i] = GUICtrlCreateCheckbox("", 480, 17+$i*20, 17, 17)
$CheckBB[$i] = GUICtrlCreateCheckbox("", 520, 17+$i*20, 17, 17)
$CheckSK[$i] = GUICtrlCreateCheckbox("", 560, 17+$i*20, 17, 17)
$CheckRA[$i] = GUICtrlCreateCheckbox("", 632, 17+$i*20, 17, 17)
$CheckKA[$i] = GUICtrlCreateCheckbox("", 672, 17+$i*20, 17, 17)
$CheckAG[$i] = GUICtrlCreateCheckbox("", 744, 17+$i*20, 17, 17)
Next
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
For $i = 1 To $Anzahl
Select ;RADIO
Case $RadioO[$i] And BitAND(GUICtrlRead($RadioO[$i]), $GUI_CHECKED) = $GUI_CHECKED
GUICtrlSetState($RadioO[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckST[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckSC[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckAK[$i],$GUI_CHECKED)
GUICtrlSetState($CheckBS[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckSP[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckLK[$i],$GUI_CHECKED)
GUICtrlSetState($CheckBB[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckSK[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckRA[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckKA[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckAG[$i],$GUI_UNCHECKED)
Case $RadioD[$i] And BitAND(GUICtrlRead($RadioD[$i]), $GUI_CHECKED) = $GUI_CHECKED
GUICtrlSetState($RadioD[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckST[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckSC[$i],$GUI_CHECKED)
GUICtrlSetState($CheckAK[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckBS[$i],$GUI_CHECKED)
GUICtrlSetState($CheckSP[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckLK[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckBB[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckSK[$i],$GUI_CHECKED)
GUICtrlSetState($CheckRA[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckKA[$i],$GUI_UNCHECKED)
GUICtrlSetState($CheckAG[$i],$GUI_UNCHECKED)
EndSelect
Next
If $nMsg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $nMsg = $Save Then ;SAVE
For $i = 1 To $Anzahl
If $CheckST[$i] And BitAND(GUICtrlRead($CheckST[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"ST","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"ST","$GUI_UNCHECKED")
EndIf
If $CheckSC[$i] And BitAND(GUICtrlRead($CheckSC[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"SC","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"SC","$GUI_UNCHECKED")
EndIf
If $CheckAK[$i] And BitAND(GUICtrlRead($CheckAK[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"AK","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"AK","$GUI_UNCHECKED")
EndIf
If $CheckBS[$i] And BitAND(GUICtrlRead($CheckBS[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"BS","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"BS","$GUI_UNCHECKED")
EndIf
If $CheckSP[$i] And BitAND(GUICtrlRead($CheckSP[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"SP","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"SP","$GUI_UNCHECKED")
EndIf
If $CheckLK[$i] And BitAND(GUICtrlRead($CheckLK[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"LK","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"LK","$GUI_UNCHECKED")
EndIf
If $CheckBB[$i] And BitAND(GUICtrlRead($CheckBB[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"BB","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"BB","$GUI_UNCHECKED")
EndIf
If $CheckSK[$i] And BitAND(GUICtrlRead($CheckSK[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"SK","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"SK","$GUI_UNCHECKED")
EndIf
If $CheckRA[$i] And BitAND(GUICtrlRead($CheckRA[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"RA","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"RA","$GUI_UNCHECKED")
EndIf
If $CheckKA[$i] And BitAND(GUICtrlRead($CheckKA[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"KA","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"KA","$GUI_UNCHECKED")
EndIf
If $CheckAG[$i] And BitAND(GUICtrlRead($CheckAG[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
IniWrite(@ScriptDir & "\temp.ini",$i,"AG","$GUI_CHECKED")
Else
IniWrite(@ScriptDir & "\temp.ini",$i,"AG","$GUI_UNCHECKED")
EndIf
Next
EndIf
WEnd
Das Problem liegt hier:
[autoit]$CheckST[$i] = GUICtrlCreateCheckbox("", 248, 17+$i*20, 17, 17)
GUICtrlSetState($CheckST[$i],IniRead(@ScriptDir & "\temp.ini",$i,"ST",""))
MsgBox(0,"0",IniRead(@ScriptDir & "\temp.ini",$i,"ST",""))
Der Zustand der Checkbox wird so gespeichert "$GUI_CHECKED" anstatt ohne " ". Dies verursacht, dass die Variabel nur als Text erkennt wird.
Habt ihr ideen wie ich das ändern kann?