循环读取INI改变控件状态问题!(已解决)
本帖最后由 cfs43210 于 2012-9-23 23:41 编辑现在问题是第一次读取是可以的,但是$Checkbox8 和 $Checkbox23就头和尾复选按钮控制的$Combo1、$Combo1、$Input14、$Input29 失灵。第二次读取时其它控件也会被禁用了,这是这么回事!谢谢!
For $i = 1 To 15
$aa = IniRead($Tini, "abc", "x1" & $i, "default")
If $aa = 1 Then
GUICtrlSetState($Checkbox8, $GUI_CHECKED)
GUICtrlSetState($Combo1, $GUI_ENABLE)
GUICtrlSetState($Input14, $GUI_ENABLE)
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1
ElseIf $aa = 0 Then
GUICtrlSetState($Checkbox8, $GUI_UNCHECKED)
GUICtrlSetState($Combo1, $GUI_DISABLE)
GUICtrlSetState($Input14, $GUI_DISABLE)
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1
EndIf
Next
大侠帮忙看看!顶一顶! hurry hurry hurry hurry 知道的人进来!!,谢谢 期待高手出现~~~ 等待了一个晚上,没人回复。再顶上去。谢谢! 回复 1# cfs43210
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1
什么意思是?这些变量应该都是控件变量,能够加减运算吗? 是控件变量,运行时是能加,当循环一次就是下一个控件。
有高人指点,变了一下方法。OK,谢谢7楼!!
$che = 8
$com = 1
$inp = 14
If $path = 1 Then
GUICtrlSetState("$Checkbox" & $che, $GUI_CHECKED)
GUICtrlSetState("$Combo" & $com, $GUI_ENABLE)
GUICtrlSetState("$Input" & $inp, $GUI_ENABLE)
$che = $che + 1
$com = $com + 1
$inp = $inp + 1 本帖最后由 cfs43210 于 2012-9-23 23:46 编辑
有高人指点,变了一下方法。OK,谢谢7楼!!(回想了一下自己很底Q,哎~~)
$che = 8
$com = 1
$inp = 14
If $path = 1 Then
GUICtrlSetState("$Checkbox" & $che, $GUI_CHECKED)
GUICtrlSetState("$Combo" & $com, $GUI_ENABLE)
GUICtrlSetState("$Input" & $inp, $GUI_ENABLE)
$che = $che + 1
$com = $com + 1
$inp = $inp + 1 不好意思以为运算OK了。问题解决了。没想到还是不行。现在修改不回了。 回复 11# cfs43210
楼主看来是个高手啊?使用控件ID直接运算,发前人所未发~~厉害厉害~~真希望你能理解它的意义~~ 本帖最后由 cfs43210 于 2012-9-24 01:57 编辑
搞了一个晚上终于搞清楚了,这回真搞定了。
$che = 37;$Checkbox8ID
$com = 54 ;$Combo1ID
$inp = 20;$Input14ID
For $i = 1 To 15
$path = IniRead($Tini, "ABC", "X1" & $i, "default")
If $path = 1 Then
GUICtrlSetState($che, $GUI_CHECKED);之前用这样"$Checkbox" & $che程序不工作
GUICtrlSetState($com, $GUI_ENABLE)
GUICtrlSetState($inp, $GUI_ENABLE)
$che = $che + 1
$com = $com + 1
$inp = $inp + 1
ElseIf $path = 0 Then
GUICtrlSetState($che, $GUI_UNCHECKED)
GUICtrlSetState($com, $GUI_DISABLE)
GUICtrlSetState($inp, $GUI_DISABLE)
$che = $che + 1
$com = $com + 1
$inp = $inp + 1
EndIf
Nex 12楼,原来控件ID是可以直接运算。之前用下面也是可以运算,只是每刷新不会重运算,而是接着ID循环运算。所以就有其它控件被禁用了的原因。总之都要感谢大家帮忙。
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1 不错,顶下
页:
[1]