Что нового

[Элементы GUI] Установка галочки в CheckBox по условию

ORLANGUR-M3

Новичок
Сообщения
15
Репутация
0
Здарвствуйте.
Имеются следующие куски кода:
Определение переменной:
Код:
Global $BAN[3]

Установка значения переменной:
Код:
$BAN[0]=IniRead('Options_Main.ini','BAN_SECURITY', 'Enable','false')

значение в Options_Main.ini:
Код:
[BAN_SECURITY]
Enable=False
Создание GUI элемента
Код:
$Checkbox_BAN = GUICtrlCreateCheckbox("Включение защиты", 217, 57, 127, 17)


И собственно процедура установки галочки:
Код:
If $BAN[0] Then GUICtrlSetState ( $Checkbox_BAN, $GUI_CHECKED )


В чем моя ошибка, если, в итоге, галочка установлена всегда, вне зависимости от содержимого переменной $BAN[0]?
проверял условие следующим образом:
Код:
If $BAN[0] Then GUICtrlSetState ( $Checkbox_BAN, $GUI_CHECKED )
_FileWriteLog("Logs\log.txt", $BAN[0]&';BAN[0]=True: '&_Iif($BAN[0],'1','0'))

содержимое файла log.txt:
Код:
2012-04-20 22:47:31 : False;BAN[0]=True: 1
2012-04-20 23:37:02 : 0;BAN[0]=True: 1
2012-04-20 23:37:15 : ;BAN[0]=True: 0
2012-04-20 23:37:44 : false;BAN[0]=True: 1
2012-04-20 23:38:29 : true;BAN[0]=True: 1
Видно, что галочки не будет только в том случае если в Options_Main.ini напротив Enable будет пусто или пробел.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
При чтении с Ini результат всегда представлен строкой. А выражение If строка верно, если строка не пустая.

Можешь сравнивать как
Код:
If $BAN[0] = "true"

или отказаться от false, true в пользу 1,0 и после чтения значений - приводить их в числовой вид
Код:
Number()
 
Автор
O

ORLANGUR-M3

Новичок
Сообщения
15
Репутация
0
выражение If строка верно, если строка не пустая
Что то вылетело из памяти. Благодарю за подсказку.

Переписал условие в следующем виде:
Код:
If Not ($BAN[0]='False' Or $BAN[0]='0' Or $BAN[0]='') Then GUICtrlSetState ( $Checkbox_BAN, $GUI_CHECKED )
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
ORLANGUR-M3
Код:
$BAN[0] = Number(IniRead('Options_Main.ini', 'BAN_SECURITY', 'Enable', 0))
If $BAN[0] Then GUICtrlSetState($Checkbox_BAN, $GUI_CHECKED)
 
Верх