Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


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?

Цитата Centrinar:
Вот полный комплект скрипта »
А иконки?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:36, 08-09-2010 | #7