Êîìïüþòåðíûé ôîðóì OSzone.net  

Êîìïüþòåðíûé ôîðóì OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [ðåøåíî] Ïðîáëåìà ñ ôóíêöèåé äëÿ îòìåòêè âñåõ ãàëî÷åê (http://forum.oszone.net/showthread.php?t=184945)

Centrinar 08-09-2010 16:02 1491134

Ïðîáëåìà ñ ôóíêöèåé äëÿ îòìåòêè âñåõ ãàëî÷åê
 
Âëîæåíèé: 1
  • conf.rar (173 bytes, ñêà÷èâàíèé: 22)
Åñòü ñêðèïò îòîáðàæàþùèé êîë-âî ïðîãðàìì â ñèñòåìå, ñäåëàë êíîïêó "Îòìåòèòü âñå", ïî èäåè ïðè íàæàòèè íà íåå äîëæíû îòìåòèòüñÿ âñå ÷åêáîêñû íî íå òóò òî áûëî, îí íè÷åãî íå îòìå÷àåò. Ïîìîãèòå ðàçîáðàòüñÿ è ïîïðàâèòü ñêðèïò. Èíè ôàéë íåîáõîäèìûé äëÿ ðàáîòû ñêðèïòà ïðèêðåïëåí ê òåìå. ÑÏÀÑÈÁÎ!
Êîä:


#RequireAdmin
#NoTrayIcon

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIScrollbars_Ex.au3>

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

Global $params = StringRegExp(IniRead("conf.ini","Params","main",0),"<(.*?)>",3)
Global $anCheckBoxes1[$params[0] + 1]
Global $aCheckedIcons1[$params[0] + 1]
Global $aUnCheckedIcons1[$params[0] + 1]
Global $aCompleteIcons1[$params[0] + 1]
Global $aInstalledIcons1[$params[0] + 1]

$hGUI = GUICreate("My GUI Tab", 852, 650)
GUISetBkColor(0xc64444)

Global $progs[$params[0]+1]
$progs[0]=$params[0]
        For $i=1 To $progs[0] Step 1
$parse = StringRegExp(IniRead("conf.ini","Params","prog"&$i,"<de.exe><INI file ?><0>"),"<(.*?)>",3)
$hChild_Ctrls1 = _SetProgrs_Proc("images", $parse[1], $anCheckBoxes1, $aCheckedIcons1, $aUnCheckedIcons1, $aInstalledIcons1, $aCompleteIcons1)
Next

GUICtrlCreateTabItem("")
$nStart = GUICtrlCreateButton("Âûïîëíèòü", 640, 560, 150, 30)
$btn1 = GUICtrlCreateButton ("îòìåòèòü âñå", 260,  50, 130, 30)

GUISetState(@SW_SHOW, $hGUI)
While 1
        $nMsg = GUIGetMsg()
       
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $btn1
                        For $i=1 To $params[0]
                        $aArray = $anCheckBoxes1[$i]
              GUICtrlSetState ($aArray[1],$GUI_CHECKED)
                          Next
                Case $nStart
               
        EndSwitch
WEnd

Func _SetProgrs_Proc($sIconsPath, $aProgs, ByRef $anCheckBoxes, ByRef $aCheckedIcons, ByRef $aUnCheckedIcons, ByRef $aInstalledIcons, ByRef $aCompleteIcons)
        Local $iTop = 40, $iLeft = 40, $iTop2 = 60
       
        Local $hChild_Ctrls = GUICreate("", 760, 400, 20, 100, $WS_CHILD, -1, $hGUI)
        GUISetBkColor(0xc64444)
       
For $i=1 To $progs[0]
                $aCheckedIcons[$i] = $sIconsPath & "\01.ico"
                $aUnCheckedIcons[$i] = $sIconsPath & "\01.ico"
                $aInstalledIcons[$i] = $sIconsPath & "\03.ico"
                $aCompleteIcons[$i] = $sIconsPath & "\02.ico"
                $parse = StringRegExp(IniRead("conf.ini","Params","prog"&$i,"<de.exe><INI file ?><0>"),"<(.*?)>",3)
                $anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($parse[1], '^.*=', ''), $iLeft, $iTop, -1, 15, $aUnCheckedIcons[$i])
                $iTop += 80
                $iTop2 += 80
Next
       
        If $iTop > 370 Then
                _GUIScrollbars_Generate($hChild_Ctrls, 0, $iTop, 0, 0, 1)
        EndIf
       
        GUISetState(@SW_SHOW, $hChild_Ctrls)
        GUISwitch($hGUI)
       
        Return $hChild_Ctrls
EndFunc

Func _CheckProgrs_Proc($hChild_Ctrls, $aProgs, $anCheckBoxes, $aCheckedIcons, $aUnCheckedIcons, $aInstalledIcons, $aCompleteIcons)
        Local $aCheckBox, $iScrollPos
       
        For $i = 1 To $aProgs[0]
                $aCheckBox = $anCheckBoxes[$i]
               
                If GUICtrlRead($aCheckBox[1]) = 1 Then
                        $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                        $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')
                       
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aInstalledIcons[$i])
                        MsgBox(64, $sProgName, "zz", 3)
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aCompleteIcons[$i])
                Else
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aUnCheckedIcons[$i])
                EndIf
        Next
EndFunc

Func _SwitchTabs_Proc($iTab, $iMode = -1)
        Switch $iTab
                Case 0
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls2)
                                GUISetState(@SW_SHOW, $hChild_Ctrls1)
                        EndIf
                       
                        ControlFocus($hChild_Ctrls1, "", "")
                Case 1
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls1)
                                GUISetState(@SW_SHOW, $hChild_Ctrls2)
                        EndIf
                       
                        ControlFocus($hChild_Ctrls2, "", "")
        EndSwitch
EndFunc

Func _GUICtrlSetImageEx($hWnd, $nCtrlID, $sFileName, $iIconName = "", $iIconType = 0)
        Local $iScrollPage, $iScrollPos
       
        $iScrollPage = _GUIScrollBars_GetScrollInfoPage($hWnd, $SB_VERT)
       
        If $iScrollPage > 0 Then
                $iScrollPos = _GUIScrollBars_GetScrollPos($hWnd, $SB_VERT)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, 0)
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iScrollPos)
        Else
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
        EndIf
EndFunc

Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile="", $nIconIndex=0)
        Local $aRetArr[2]
       
        $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft - 20, $iTop - 1, 16, 16)
        GUICtrlSetState($aRetArr[0], $GUI_DISABLE)
       
        $aRetArr[1] = GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight)
        GUICtrlSetBkColor($aRetArr[1], 0xc64444)
       
        Return $aRetArr
EndFunc


Creat0R 08-09-2010 16:54 1491165

Çàãîëîâîê â òàêîì ñëó÷àå äîëæåí çâó÷àòü òàê:
Öèòàòà:

Êàê ñäåëàòü ôóíêöèþ äëÿ îòìåòêè âñåõ ãàëî÷åê?
Íà äàííûé ìîìåíò çàãîëîâîê ñëèøêîì îáùèé.




Ñêðèïò (â êàêîé ðàç) íåðàáî÷èé.  àðõèâå ìîã áû ïðèêðåïèòü âñ¸ ÷òî íåîáõîäèìî äëÿ åãî ðàáîòû, èíà÷å ïðîïàäàåò æåëàíèå ðûòüñÿ â êîäå è íà óãàä ïûòòàòüñÿ âûÿâèòü ïðîáëåìó.

Âî-ïåðâûõ, StringRegExp âîçâðàùàåò ìàññèâ ãäå ïåðâîå çíà÷åíèå ïîïàäàåò ñðàçó â íóëåâîé ýëåìåíò, ïîýòîìó è öèêë íóæíî íà÷èíàòü ñðàçó ñ 0-ÿ à íå ñ 1-öû.
Âî-âòîðûõ, åñëè ñäåëàòü âûøåñêàçàííîå, òî ñêðèïò ðóãàåòñÿ íà îøèáêó ìàññèâíîñòè ïåðåìåííîé $aArray, è ïðàâèëüíî äåëàåò, ò.ê ÿ íàïðèìåð íå ïîíèìàþ ñìûñë â òîì ÷òîáû ïðîêðó÷èâàòü öèêë äëÿ îäíîãî ìàññèâà, à ïðîâåðÿòü äðóãîé. Ýòî õîðîøèé ðåöåïò ê êðàõó ñêðèïòà.

Âîò òàê âðîäå äîëæíî ðàáîòàòü, íî ó ìåíÿ íå ðàáîòàåò, õîòÿáû ïîòîìó ÷òî íàðóøåíî ñîçäàíèå ýëåìåíòîâ (íåò èêîíîê):

Êîä:

#RequireAdmin
#NoTrayIcon

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIScrollbars.au3>

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

Global $params = StringRegExp(IniRead(@DesktopDir & "\conf.ini", "Params", "main", 0), "<(.*?)>", 3)
Global $iParams = UBound($params)+1

Global $anCheckBoxes1[$iParams + 1]
Global $aCheckedIcons1[$iParams + 1]
Global $aUnCheckedIcons1[$iParams + 1]
Global $aCompleteIcons1[$iParams + 1]
Global $aInstalledIcons1[$iParams + 1]

$hGUI = GUICreate("My GUI Tab", 852, 650)
GUISetBkColor(0xc64444)

Global $progs[$iParams+1]
$progs[0] = $iParams

For $i = 1 To $progs[0] Step 1
        $parse = StringRegExp(IniRead("conf.ini", "Params", "prog" & $i, "<de.exe><INI file ?><0>"), "<(.*?)>", 3)
        $hChild_Ctrls1 = _SetProgrs_Proc("images", $parse[1], $anCheckBoxes1, $aCheckedIcons1, $aUnCheckedIcons1, $aInstalledIcons1, $aCompleteIcons1)
Next

GUICtrlCreateTabItem("")
$nStart = GUICtrlCreateButton("Âûïîëíèòü", 640, 560, 150, 30)
$btn1 = GUICtrlCreateButton("îòìåòèòü âñå", 260, 50, 130, 30)

GUISetState(@SW_SHOW, $hGUI)
While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $btn1
                        For $i = 1 To UBound($anCheckBoxes1)-1
                                $aArray = $anCheckBoxes1[$i]
                                GUICtrlSetState($aArray[1], $GUI_CHECKED)
                        Next
                Case $nStart

        EndSwitch
WEnd

Func _CheckProgrs_Proc($hChild_Ctrls, $aProgs, $anCheckBoxes, $aCheckedIcons, $aUnCheckedIcons, $aInstalledIcons, $aCompleteIcons)
        Local $aCheckBox, $iScrollPos

        For $i = 1 To $aProgs[0]
                $aCheckBox = $anCheckBoxes[$i]

                If GUICtrlRead($aCheckBox[1]) = 1 Then
                        $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                        $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')

                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aInstalledIcons[$i])
                        MsgBox(64, $sProgName, "zz", 3)
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aCompleteIcons[$i])
                Else
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aUnCheckedIcons[$i])
                EndIf
        Next
EndFunc  ;==>_CheckProgrs_Proc

Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile = "", $nIconIndex = 0)
        Local $aRetArr[2]

        $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft - 20, $iTop - 1, 16, 16)
        GUICtrlSetState($aRetArr[0], $GUI_DISABLE)

        $aRetArr[1] = GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight)
        GUICtrlSetBkColor($aRetArr[1], 0xc64444)
       
        Return $aRetArr
EndFunc  ;==>_GUICtrlCreateCheckboxEx

Func _GUICtrlSetImageEx($hWnd, $nCtrlID, $sFileName, $iIconName = "", $iIconType = 0)
        Local $iScrollPage, $iScrollPos

        $iScrollPage = _GUIScrollBars_GetScrollInfoPage($hWnd, $SB_VERT)

        If $iScrollPage > 0 Then
                $iScrollPos = _GUIScrollBars_GetScrollPos($hWnd, $SB_VERT)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, 0)
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iScrollPos)
        Else
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
        EndIf
EndFunc  ;==>_GUICtrlSetImageEx

Func _SetProgrs_Proc($sIconsPath, $aProgs, ByRef $anCheckBoxes, ByRef $aCheckedIcons, ByRef $aUnCheckedIcons, ByRef $aInstalledIcons, ByRef $aCompleteIcons)
        Local $iTop = 40, $iLeft = 40, $iTop2 = 60

        Local $hChild_Ctrls = GUICreate("", 760, 400, 20, 100, $WS_CHILD, -1, $hGUI)
        GUISetBkColor(0xc64444)

        For $i = 1 To $progs[0]
                $aCheckedIcons[$i] = $sIconsPath & "\01.ico"
                $aUnCheckedIcons[$i] = $sIconsPath & "\01.ico"
                $aInstalledIcons[$i] = $sIconsPath & "\03.ico"
                $aCompleteIcons[$i] = $sIconsPath & "\02.ico"
                $parse = StringRegExp(IniRead("conf.ini", "Params", "prog" & $i, "<de.exe><INI file ?><0>"), "<(.*?)>", 3)
                $anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($parse[1], '^.*=', ''), $iLeft, $iTop, -1, 15, $aUnCheckedIcons[$i])
                $iTop += 80
                $iTop2 += 80
        Next

        If $iTop > 370 Then
                _GUIScrollbars_Generate($hChild_Ctrls, 0, $iTop, 0, 0, 1)
        EndIf
       
        GUISetState(@SW_SHOW, $hChild_Ctrls)
        GUISwitch($hGUI)

        Return $hChild_Ctrls
EndFunc  ;==>_SetProgrs_Proc

Func _SwitchTabs_Proc($iTab, $iMode = -1)
        Switch $iTab
                Case 0
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls2)
                                GUISetState(@SW_SHOW, $hChild_Ctrls1)
                        EndIf

                        ControlFocus($hChild_Ctrls1, "", "")
                Case 1
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls1)
                                GUISetState(@SW_SHOW, $hChild_Ctrls2)
                        EndIf

                        ControlFocus($hChild_Ctrls2, "", "")
        EndSwitch
EndFunc  ;==>_SwitchTabs_Proc


Centrinar 08-09-2010 17:07 1491178

ðóãàåòüñÿ íà ôóíêöèþ _GUIScrollbars_Generate ò.å. íà åå îòñóòñòâèå... Õì ïðîáëåìà â òîì ÷òî îí âèäåò âñåãî îäèí ýëåìåíò èç èíè ôàéëà, õîòÿ èõ òàì 3

Creat0R 08-09-2010 17:26 1491186

Öèòàòà:

Öèòàòà Centrinar
ðóãàåòüñÿ íà ôóíêöèþ _GUIScrollbars_Generate »

Ýòî øóòêà? è ó ìåíÿ ðóãàåòñÿ, ÿ æå íàïèñàë:
Öèòàòà:

Öèòàòà Creat0R
Ñêðèïò (â êàêîé ðàç) íåðàáî÷èé »

ìíå ïðèøëîñü çàìåíèòü #include <GUIScrollbars_Ex.au3> íà #include <GUIScrollbars.au3>.

Öèòàòà:

Öèòàòà Centrinar
ïðîáëåìà â òîì ÷òî îí âèäåò âñåãî îäèí ýëåìåíò èç èíè ôàéëà, õîòÿ èõ òàì 3 »

Äà òóò âîîáùå îáðàáîòêà íåïðàâèëüíàÿ, çà÷åì òàì RegExp êîãäà èìååòñÿ ñòðóêòóðà Ini, Ini* ôóíêöèé ÷åì íå óãîäèëè?

Creat0R 08-09-2010 19:20 1491247

Centrinar, ïîñìîòðþ, à ÷òî ñ çàãîëîâêîì?

Centrinar 08-09-2010 19:30 1491255

Èñïðàâèë)))

Creat0R 08-09-2010 19:36 1491257

Centrinar,
Âîáùåì ÿ íå çíàþ êàêîå òóò íàçíà÷åíèå ó ñêðèïòà, íî ó ìåíÿ òàê âûøëî:

Êîä:

#RequireAdmin
#NoTrayIcon

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIScrollbars_Ex.au3>

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

Global $params = StringRegExp(IniRead("conf.ini", "Params", "main", 0), "<(.*?)>", 3)
Global $anCheckBoxes1[$params[0] + 1]
Global $aCheckedIcons1[$params[0] + 1]
Global $aUnCheckedIcons1[$params[0] + 1]
Global $aCompleteIcons1[$params[0] + 1]
Global $aInstalledIcons1[$params[0] + 1]

$hGUI = GUICreate("My GUI Tab", 852, 650)
GUISetBkColor(0xc64444)

Global $progs[$params[0] + 1]
$progs[0] = $params[0]

$hChild_Ctrls = GUICreate("", 760, 400, 20, 100, $WS_CHILD, -1, $hGUI)
GUISetBkColor(0xc64444)
Dim $iTop = 40, $iLeft = 40, $iTop2 = 60

For $i = 1 To $progs[0]
        $parse = StringRegExp(IniRead("conf.ini", "Params", "prog" & $i, "<de.exe><INI file ?><0>"), "<(.*?)>", 3)
        $hChild_Ctrls1 = _SetProgrs_Proc("images", $i, $parse[1], $anCheckBoxes1, $aCheckedIcons1, $aUnCheckedIcons1, $aInstalledIcons1, $aCompleteIcons1)
Next

GUICtrlCreateTabItem("")
$nStart = GUICtrlCreateButton("Âûïîëíèòü", 640, 560, 150, 30)
$btn1 = GUICtrlCreateButton("îòìåòèòü âñå", 260, 50, 130, 30)

GUISetState(@SW_SHOW, $hGUI)

While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $btn1
                        For $i = 1 To $params[0]
                                $aArray = $anCheckBoxes1[$i]
                                GUICtrlSetState($aArray[1], $GUI_CHECKED)
                        Next
                Case $nStart

        EndSwitch
WEnd

Func _CheckProgrs_Proc($hChild_Ctrls, $aProgs, $anCheckBoxes, $aCheckedIcons, $aUnCheckedIcons, $aInstalledIcons, $aCompleteIcons)
        Local $aCheckBox, $iScrollPos

        For $i = 1 To $aProgs[0]
                $aCheckBox = $anCheckBoxes[$i]

                If GUICtrlRead($aCheckBox[1]) = 1 Then
                        $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                        $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')

                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aInstalledIcons[$i])
                        MsgBox(64, $sProgName, "zz", 3)
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aCompleteIcons[$i])
                Else
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aUnCheckedIcons[$i])
                EndIf
        Next
EndFunc  ;==>_CheckProgrs_Proc

Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile = "", $nIconIndex = 0)
        Local $aRetArr[2]

        $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft - 20, $iTop - 1, 16, 16)
        GUICtrlSetState($aRetArr[0], $GUI_DISABLE)

        $aRetArr[1] = GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight)
        GUICtrlSetBkColor($aRetArr[1], 0xc64444)

        Return $aRetArr
EndFunc  ;==>_GUICtrlCreateCheckboxEx

Func _GUICtrlSetImageEx($hWnd, $nCtrlID, $sFileName, $iIconName = "", $iIconType = 0)
        Local $iScrollPage, $iScrollPos

        $iScrollPage = _GUIScrollBars_GetScrollInfoPage($hWnd, $SB_VERT)

        If $iScrollPage > 0 Then
                $iScrollPos = _GUIScrollBars_GetScrollPos($hWnd, $SB_VERT)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, 0)
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iScrollPos)
        Else
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
        EndIf
EndFunc  ;==>_GUICtrlSetImageEx

Func _SetProgrs_Proc($sIconsPath, $iIndex, $sName, ByRef $anCheckBoxes, ByRef $aCheckedIcons, ByRef $aUnCheckedIcons, ByRef $aInstalledIcons, ByRef $aCompleteIcons)
        $aCheckedIcons[$iIndex] = $sIconsPath & "\01.ico"
        $aUnCheckedIcons[$iIndex] = $sIconsPath & "\01.ico"
        $aInstalledIcons[$iIndex] = $sIconsPath & "\03.ico"
        $aCompleteIcons[$iIndex] = $sIconsPath & "\02.ico"
       
        $anCheckBoxes[$iIndex] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($sName, '^.*=', ''), $iLeft, $iTop, -1, 15, $aUnCheckedIcons[$i])
        $iTop += 80
        $iTop2 += 80
       
        If $iTop > 370 Then
                _GUIScrollbars_Generate($hChild_Ctrls, 0, $iTop, 0, 0, 1)
        EndIf

        GUISetState(@SW_SHOW, $hChild_Ctrls)
        GUISwitch($hGUI)

        Return $hChild_Ctrls
EndFunc  ;==>_SetProgrs_Proc

Func _SwitchTabs_Proc($iTab, $iMode = -1)
        Switch $iTab
                Case 0
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls2)
                                GUISetState(@SW_SHOW, $hChild_Ctrls1)
                        EndIf

                        ControlFocus($hChild_Ctrls1, "", "")
                Case 1
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls1)
                                GUISetState(@SW_SHOW, $hChild_Ctrls2)
                        EndIf

                        ControlFocus($hChild_Ctrls2, "", "")
        EndSwitch
EndFunc  ;==>_SwitchTabs_Proc

Ñêîðåå âñåãî òóò íàðóøèëàñü èçíà÷àëüíàÿ êîíöåïöèÿ, íî ÿ æå å¸ íå çíàþ. Ïîýòîìó ëèáî ðàñêàæè ìíå ÷òî êîíêðåòíî äîëæåí äåëàòü ñêðèïò, ëèáî ñàì ïîïðàâëÿé è äåëàé âûâîäû :)

Öèòàòà:

Öèòàòà Centrinar
Èñïðàâèë »

Òàê òåïåðü ýòî ïðîáëåìà â RegExp? :unsure:

Öèòàòà:

Öèòàòà Centrinar
Âîò ïîëíûé êîìïëåêò ñêðèïòà »

À èêîíêè?

Centrinar 08-09-2010 20:48 1491312

Öèòàòà:

Ïîýòîìó ëèáî ðàñêàæè ìíå ÷òî êîíêðåòíî äîëæåí äåëàòü ñêðèïò, ëèáî ñàì ïîïðàâëÿé è äåëàé âûâîäû
Äîëæåí ïîëó÷èòüñÿ ñïèñîê ïîñòðîåííûé ïî äàííûì èç èíè ôàéëà. Ïðè íàæàòèè íà êíîïêó Îòìåòèòü âñå äîëæíû îòìåòèòüñÿ âñå ÷åêáîêñû. Ïî÷òè ïîëó÷èëîñü, íî â ïîñëåäíåì âàðèàíòå ïî÷åìó òî ñïèñîê êðèâîé ïîëó÷èëñÿ, êàêèå òî ÷åêáîêñû âûøå, êàêèå òî íèæå...

Creat0R 08-09-2010 21:30 1491334

Öèòàòà:

Öèòàòà Centrinar
Äîëæåí ïîëó÷èòüñÿ ñïèñîê ïîñòðîåííûé ïî äàííûì èç èíè ôàéëà »

:) Ýòîãî ìàëî.

Çà÷åì òàì â öèêëå ñîçäà¸òñÿ ñòîëüêî GUI ñêîëüêî çàïèñåé â ini?

Öèòàòà:

Öèòàòà Centrinar
êàêèå òî ÷åêáîêñû âûøå, êàêèå òî íèæå »

Ìîæåò ïðàâåå/ëåâåå? :)

È äëÿ ÷åãî íóæåí ïåðâûé ïàðàìåòð â ini, ýòî òèïà ñ÷¸ò÷èê âñåõ êëþ÷åé? ìîæíî è áåç íåãî:

Êîä:

#RequireAdmin
#NoTrayIcon

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIScrollbars_Ex.au3>

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

$aParams = IniReadSection("conf.ini", "Params")
Global $iTotalParams = UBound($aParams)-1

Global $anCheckBoxes1[$iTotalParams + 1]
Global $aCheckedIcons1[$iTotalParams + 1]
Global $aUnCheckedIcons1[$iTotalParams + 1]
Global $aCompleteIcons1[$iTotalParams + 1]
Global $aInstalledIcons1[$iTotalParams + 1]

$hGUI = GUICreate("My GUI Tab", 852, 650)
GUISetBkColor(0xc64444)

Global $progs[$iTotalParams + 1]
$progs[0] = $iTotalParams

$hChild_Ctrls = GUICreate("", 760, 400, 20, 100, $WS_CHILD, -1, $hGUI)
GUISetBkColor(0xc64444)
Dim $iTop = 40, $iLeft = 40, $iTop2 = 60

For $i = 1 To $progs[0]
        $parse = StringRegExp(IniRead("conf.ini", "Params", "prog" & $i, "<de.exe><INI file ?><0>"), "<(.*?)>", 3)
        $hChild_Ctrls1 = _SetProgrs_Proc("images", $i, $parse[1], $anCheckBoxes1, $aCheckedIcons1, $aUnCheckedIcons1, $aInstalledIcons1, $aCompleteIcons1)
Next

GUISetState(@SW_SHOW, $hChild_Ctrls)
GUISwitch($hGUI)

GUICtrlCreateTabItem("")
$nStart = GUICtrlCreateButton("Âûïîëíèòü", 640, 560, 150, 30)
$btn1 = GUICtrlCreateButton("îòìåòèòü âñå", 260, 50, 130, 30)

GUISetState(@SW_SHOW, $hGUI)

While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $btn1
                        For $i = 1 To $iTotalParams
                                $aArray = $anCheckBoxes1[$i]
                                GUICtrlSetState($aArray[1], $GUI_CHECKED)
                        Next
                Case $nStart

        EndSwitch
WEnd

Func _CheckProgrs_Proc($hChild_Ctrls, $aProgs, $anCheckBoxes, $aCheckedIcons, $aUnCheckedIcons, $aInstalledIcons, $aCompleteIcons)
        Local $aCheckBox, $iScrollPos

        For $i = 1 To $aProgs[0]
                $aCheckBox = $anCheckBoxes[$i]

                If GUICtrlRead($aCheckBox[1]) = 1 Then
                        $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                        $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')

                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aInstalledIcons[$i])
                        MsgBox(64, $sProgName, "zz", 3)
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aCompleteIcons[$i])
                Else
                        _GUICtrlSetImageEx($hChild_Ctrls, $aCheckBox[0], $aUnCheckedIcons[$i])
                EndIf
        Next
EndFunc  ;==>_CheckProgrs_Proc

Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile = "", $nIconIndex = 0)
        Local $aRetArr[2]

        $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft - 20, $iTop - 1, 16, 16)
        GUICtrlSetState($aRetArr[0], $GUI_DISABLE)

        $aRetArr[1] = GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight)
        GUICtrlSetBkColor($aRetArr[1], 0xc64444)

        Return $aRetArr
EndFunc  ;==>_GUICtrlCreateCheckboxEx

Func _GUICtrlSetImageEx($hWnd, $nCtrlID, $sFileName, $iIconName = "", $iIconType = 0)
        Local $iScrollPage, $iScrollPos

        $iScrollPage = _GUIScrollBars_GetScrollInfoPage($hWnd, $SB_VERT)

        If $iScrollPage > 0 Then
                $iScrollPos = _GUIScrollBars_GetScrollPos($hWnd, $SB_VERT)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, 0)
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
                _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iScrollPos)
        Else
                GUICtrlSetImage($nCtrlID, $sFileName, $iIconName, $iIconType)
        EndIf
EndFunc  ;==>_GUICtrlSetImageEx

Func _SetProgrs_Proc($sIconsPath, $iIndex, $sName, ByRef $anCheckBoxes, ByRef $aCheckedIcons, ByRef $aUnCheckedIcons, ByRef $aInstalledIcons, ByRef $aCompleteIcons)
        $aCheckedIcons[$iIndex] = $sIconsPath & "\01.ico"
        $aUnCheckedIcons[$iIndex] = $sIconsPath & "\01.ico"
        $aInstalledIcons[$iIndex] = $sIconsPath & "\03.ico"
        $aCompleteIcons[$iIndex] = $sIconsPath & "\02.ico"
        $anCheckBoxes[$iIndex] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($sName, '^.*=', ''), $iLeft, $iTop, -1, 15, $aUnCheckedIcons[$i])
        $iTop += 80
        $iTop2 += 80
       
        If $iTop > 370 Then
                _GUIScrollbars_Generate($hChild_Ctrls, 0, $iTop, 0, 0, 1)
        EndIf
       
        Return $hChild_Ctrls
EndFunc  ;==>_SetProgrs_Proc

Func _SwitchTabs_Proc($iTab, $iMode = -1)
        Switch $iTab
                Case 0
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls2)
                                GUISetState(@SW_SHOW, $hChild_Ctrls1)
                        EndIf

                        ControlFocus($hChild_Ctrls1, "", "")
                Case 1
                        If $iMode = -1 Then
                                GUISetState(@SW_HIDE, $hChild_Ctrls1)
                                GUISetState(@SW_SHOW, $hChild_Ctrls2)
                        EndIf

                        ControlFocus($hChild_Ctrls2, "", "")
        EndSwitch
EndFunc  ;==>_SwitchTabs_Proc

P.S
main=<2> èç ini íóæíî óáðàòü.


Âðåìÿ: 17:03.

Âðåìÿ: 17:03.
© OSzone.net 2001-