Что нового

CheckBox С Функцией записи значения в INI

D3fault_Player

Новичок
Сообщения
8
Репутация
0
Мне нужно чтобы Checkbox когда он отмечен записывал значение 1 в INI файл, а когда он был не отмечен, то тогда записывал значение 0 в INI. При этом чтобы при каждом запуске скрипта он читал это самое значение и отмечался если значение=1. И я попробовал реализовать это через If и вышло вот что: При запуске программы его можно нажать однократно, а при повторном нажатии он просто моргнет и все код Примерно такой(пишу по памяти не со своего компьютера):
Код:
If GUICtrlSetState ($Checkbox1, $SW_CHECKED) Then
IniWrite($Ini, "Other", "PluginsIni", "1)
Else
IniWrite($Ini, "Other", "PluginsIni", "0")
EndIf
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Код:
Switch GUICtrlRead($Checkbox1)
Case 1
IniWrite($Ini, "Other", "PluginsIni", "1")
Case 4
IniWrite($Ini, "Other", "PluginsIni", "0")
EndSwitch
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
D3fault_Player,
Попробуйте так.
Код:
#include <GUIConstantsEx.au3>

Dim $aCheckbox[4] = [3, 'First', 'Second', 'Third'], $sIni = @ScriptDir & '\Test.ini'

$hGui = GUICreate('Test', 200, 160)
For $i = 1 To $aCheckbox[0]
	GUICtrlCreateLabel($aCheckbox[$i], 45, 13 + 30 * ($i - 1), 130, 16)
	$aCheckbox[$i] = GUICtrlCreateCheckbox('', 25, 10 + 30 * ($i - 1), 20, 20)
	If Number(IniRead($sIni, 'State checkbox', GUICtrlRead($aCheckbox[$i] - 1), 0)) Then
		GUICtrlSetState(-1, $GUI_CHECKED)
	EndIf
Next
$nButton = GUICtrlCreateButton('Some button', 50, 110, 100, 30)
GUISetState()
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			For $i = 1 To $aCheckbox[0]
				IniWrite($sIni, 'State checkbox', GUICtrlRead($aCheckbox[$i] - 1), BitAND(GUICtrlRead($aCheckbox[$i]), $GUI_CHECKED))
			Next
			Exit
		Case $nButton
			MsgBox(64, 'Info', 'Button click', 0, $hGui)
		Case $aCheckbox[1] To $aCheckbox[$aCheckbox[0]]
			IniWrite($sIni, 'State checkbox', GUICtrlRead($nMsg - 1), BitAND(GUICtrlRead($nMsg), $GUI_CHECKED))
	EndSwitch
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
GUICreate('Test')
$CheckBox1 = GUICtrlCreateCheckbox('Hello this is checkbox', 50, 50)
If IniRead(@ScriptDir & '\Settings.ini', 'Options', 'CheckBox1', '') = 1 Then GUICtrlSetState($CheckBox1, 1)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $CheckBox1
			IniWrite(@ScriptDir & '\Settings.ini', 'Options', 'CheckBox1', GUICtrlRead($CheckBox1))
	EndSwitch
WEnd
 
Автор
D

D3fault_Player

Новичок
Сообщения
8
Репутация
0
Спасибо понравился вариант winstan'а
Но я успел решить это уже сам, правда не очень руками(как мне кажется).
вот так
Код:
Func LoadPlugins()
	GUICtrlSetState($Checkbox1, IniRead(@ScriptDir & '\settings.ini', "plugins.ini", "CreatePlugins", ""))
EndFunc   ;==>LoadPlugins


Func SavePlugins()
	IniWrite($SIni, "plugins.ini", "CreatePlugins", GUICtrlRead($Checkbox1))
	_ReplaceStringInFile($SIni, "=4", "=0")

EndFunc   ;==>SavePlugins
 
Верх