找回密码
 加入
搜索
楼主: 魔导

[GUI管理] 单选框 和 复选框 选好后再启动? 《已解决》

 火.. [复制链接]
发表于 2012-2-14 00:53:28 | 显示全部楼层
本帖最后由 afan 于 2012-2-14 02:46 编辑

回复 30# 魔导


    去掉了几个简单又添乱的控件,因为不知道它们是否属于单独的页面…
创建及读取以及数组的概念,可能够研究一阵…
关键是思路,直接影响代码的简洁及执行效率。
Local $aTabItem[9] = [8], $aCheckbox[13][9] = [[12]], $iTab = 1
Local $aCkTxt[12] = ['XD<上>', 'XD<下>', 'BT<上>', 'BT<下>', 'ND<上>', 'ND<下>', 'SL<上>', _
                'SL<下>', 'DF<上>', 'DF<下>', 'KN<上>', 'KN<下>']
Local $aRdTxt[8] = ['A1', 'A4', 'A7', 'D1', 'D8', 'E1', 'E2', 'NO']

Local $hGui = GUICreate('老板专用>>>调控器 - JS 01', 623, 442)
GUISetBkColor(0xFFFFFF)
Local $tab = GUICtrlCreateTab(5, 5, 390, 370)
For $i = 1 To 8
        _CreateTab($i)
Next
GUICtrlCreateTabItem('')
Local $Bt = GUICtrlCreateButton('读取', 500, 355, 100, 22)
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $tab
                        $iTab = GUICtrlRead($msg) + 1
                        WinSetTitle($hGui, '', '老板专用>>>调控器 - JS 0' & $iTab)
                Case $aCheckbox[1][$iTab] To $aCheckbox[12][$iTab]
                        If Not IsInt(($msg - $aCheckbox[1][$iTab]) / 9) Then ContinueLoop
                        Local $state = GUICtrlRead($msg)
                        For $xx = 0 To 7
                                GUICtrlSetState(Eval($msg & '_' & $xx), Round($state / 2) * 64)
                        Next

                Case $Bt
                        Local $sInfo = ''
                        For $j = 1 To 12
                                If GUICtrlRead($aCheckbox[$j][$iTab]) <> 1 Then ContinueLoop
                                $sInfo &= $aCkTxt[$j - 1] & ' ===> '
                                For $xx = 0 To 7
                                        If GUICtrlRead(Eval($aCheckbox[$j][$iTab] & '_' & $xx)) = 1 Then
                                                $sInfo &= $aRdTxt[$xx]
                                        EndIf
                                Next
                                $sInfo &= @CRLF
                        Next
                        If $sInfo <> '' Then MsgBox(0, 'JS 0' & $iTab, $sInfo)
        EndSwitch
WEnd

Func _CreateTab($x)
        $aTabItem[$x] = GUICtrlCreateTabItem('JS 0' & $x)
        Local $j_x = 32, $j_y = 20, $j_Jy = 30
        For $i = 0 To 11
                $aCheckbox[$i + 1][$x] = GUICtrlCreateCheckbox($aCkTxt[$i], 10, $j_Jy + $j_y * $i, 70, 15)
                GUIStartGroup()
                For $ii = 0 To 7
                        Assign($aCheckbox[$i + 1][$x] & '_' & $ii, GUICtrlCreateRadio($aRdTxt[$ii], _
                                        80 + $j_x * $ii, $j_Jy + $j_y * $i, 30, 17), 2)
                        GUICtrlSetState(-1, 128)
                Next
                If Not IsInt($i / 2) Then $j_Jy += 20
        Next
EndFunc   ;==>_CreateTab
 楼主| 发表于 2012-2-14 01:14:20 | 显示全部楼层
回复 31# afan


    非常  感谢    超级版主  AFAN   
没想到我   怎么多的    被您就61条码解决了 真是不得不佩服啊   
 楼主| 发表于 2012-2-14 01:22:57 | 显示全部楼层
回复 31# afan


    小弟  在此发誓    要把这一脚本  全部啃(弄到懂)完   

待我完成后一定会向超级版主和论坛交出答卷的

评分

参与人数 1贡献 +1 收起 理由
afan + 1 加U

查看全部评分

 楼主| 发表于 2012-2-14 10:29:11 | 显示全部楼层
回复 31# afan


    谢谢   超级版主的帮助    我两个码都留下了    用来慢慢研究  看看有什么不同的地方
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 21:23 , Processed in 0.074686 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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