afan 发表于 2012-2-14 00:53:28

本帖最后由 afan 于 2012-2-14 02:46 编辑

回复 30# 魔导


    去掉了几个简单又添乱的控件,因为不知道它们是否属于单独的页面…
创建及读取以及数组的概念,可能够研究一阵…
关键是思路,直接影响代码的简洁及执行效率。
Local $aTabItem = , $aCheckbox = [], $iTab = 1
Local $aCkTxt = ['XD<上>', 'XD<下>', 'BT<上>', 'BT<下>', 'ND<上>', 'ND<下>', 'SL<上>', _
                'SL<下>', 'DF<上>', 'DF<下>', 'KN<上>', 'KN<下>']
Local $aRdTxt = ['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[$iTab] To $aCheckbox[$iTab]
                        If Not IsInt(($msg - $aCheckbox[$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   {:face (209):}
没想到我   怎么多的    被您就61条码解决了 真是不得不佩服啊   {:1_601:}

魔导 发表于 2012-2-14 01:22:57

回复 31# afan


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

待我完成后一定会向超级版主和论坛交出答卷的 {:face (293):}

魔导 发表于 2012-2-14 10:29:11

回复 31# afan


    谢谢   超级版主的帮助    我两个码都留下了    用来慢慢研究看看有什么不同的地方{:face (460):}
页: 1 2 [3]
查看完整版本: 单选框 和 复选框 选好后再启动? 《已解决》