找回密码
 加入
搜索
查看: 5198|回复: 14

[GUI管理] 循环读取INI改变控件状态问题!(已解决)

[复制链接]
发表于 2012-9-22 17:06:20 | 显示全部楼层 |阅读模式
本帖最后由 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
 楼主| 发表于 2012-9-22 18:12:13 | 显示全部楼层
大侠帮忙看看!顶一顶!
 楼主| 发表于 2012-9-22 19:25:02 | 显示全部楼层
hurry hurry hurry hurry
 楼主| 发表于 2012-9-22 19:25:46 | 显示全部楼层
知道的人进来!!,谢谢
 楼主| 发表于 2012-9-22 20:47:31 | 显示全部楼层
期待高手出现~~~
 楼主| 发表于 2012-9-23 20:53:40 | 显示全部楼层
等待了一个晚上,没人回复。再顶上去。谢谢!
发表于 2012-9-23 22:10:58 | 显示全部楼层
回复 1# cfs43210
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1
什么意思是?这些变量应该都是控件变量,能够加减运算吗?
 楼主| 发表于 2012-9-23 23:10:59 | 显示全部楼层
是控件变量,运行时是能加,当循环一次就是下一个控件。
 楼主| 发表于 2012-9-23 23:38:27 | 显示全部楼层
有高人指点,变了一下方法。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
 楼主| 发表于 2012-9-23 23:38:33 | 显示全部楼层
本帖最后由 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
 楼主| 发表于 2012-9-24 00:31:03 | 显示全部楼层
不好意思以为运算OK了。问题解决了。没想到还是不行。现在修改不回了。
发表于 2012-9-24 00:41:37 | 显示全部楼层
回复 11# cfs43210


    楼主看来是个高手啊?使用控件ID直接运算,发前人所未发~~厉害厉害~~真希望你能理解它的意义~~
 楼主| 发表于 2012-9-24 01:56:07 | 显示全部楼层
本帖最后由 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
 楼主| 发表于 2012-9-24 02:13:50 | 显示全部楼层
12楼,原来控件ID是可以直接运算。之前用下面也是可以运算,只是每刷新不会重运算,而是接着ID循环运算。所以就有其它控件被禁用了的原因。总之都要感谢大家帮忙。
$Checkbox8 = $Checkbox8 + 1
$Combo1 = $Combo1 + 1
$Input14 = $Input14 + 1
发表于 2012-10-8 16:41:50 | 显示全部楼层
不错,顶下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 21:26 , Processed in 0.113182 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表