Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для Creat0R

Must AutoIt


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

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


Нужно обрабатывать события для всех элементов в одном цикле, а GUI создавать например через функцию:

Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GuiMenu.au3>
#include <Misc.au3>
#include <WinAPIEx.au3>

OnAutoItExitRegister('_Del_BackUpIni')
_Singleton(@ScriptName)

Global $sData, $aSection_N, $iColumns, $iColumn_W = 100, $iLeft = 10, $iY_LV = 60, _
	$hListView, $iLast_LV_Index, $iLast_LV_SubIndex, $hMain_GUI, $hEditor, $fEdit = False, _
	$nInputEditor, $aRect, $sFile, $iCountRow, $aChangeSubMenu[1], $aOld[1], $aNew[1], _
	$fLV = False, $fCombo = False

Global $hIniEditor_GUI, $hEditor, $nComboSection, $nListView, $iW_LV, $iDelta, $nInputIni, $nButtonDefault, $nButtonSave, _
	$nSubMenuEdit, $nSubMenuDel, $nSubMenuDelAll, $nContextMenuN, $nSubMenuNF, $nSubMenuNE, _
	$nContextMenu, $nComboEditor, $hContextMenu, $nContextMenu

$hMain_GUI = GUICreate("My GUI Tab", 200, 200)
$Button = GUICtrlCreateButton("Кнопка", 30, 30, 100, 20)

GUISetState(@SW_SHOW, $hMain_GUI)

While 1
	$aMsg = GUIGetMsg(1)
	
	If $aMsg[0] = 0 Then
		ContinueLoop
	EndIf
	
	Switch $aMsg[1]
		Case $hIniEditor_GUI
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					GUIDelete($hIniEditor_GUI)
					GUIDelete($hEditor)
				Case $nComboSection
					GUICtrlSetState($nListView, $GUI_FOCUS)
					_GUICtrlListView_DeleteAllItems($hListView)
					For $i = $iColumns - 1 To 0 Step -1
						_GUICtrlListView_DeleteColumn($hListView, 1)
					Next
					For $i = 1 To 5
						$aSection_N = _IniReadSectionMy($sFile, GUICtrlRead($nComboSection))
						$iColumns = @extended
						If Not @error Then ExitLoop
					Next
					If Not @error Then
						If ($iColumns + 1) * $iColumn_W <> $iW_LV Then
							$iW_LV = ($iColumns + 1) * $iColumn_W
							If $iW_LV + $iLeft * 2 + $iDelta < 400 Then
								$iW_LV = 400 - $iLeft * 2
							EndIf
							WinMove($hMain_GUI, '', (@DesktopWidth - ($iW_LV + $iLeft * 2 + $iDelta)) / 2, _
									(@DesktopHeight - 400) / 2, $iW_LV + $iLeft * 2 + $iDelta * ($iColumns + 2))

							GUICtrlSetPos($nInputIni, $iLeft, 5, $iW_LV + $iDelta * ($iColumns + 1))
							GUICtrlSetPos($nListView, $iLeft, $iY_LV, $iW_LV + $iDelta * ($iColumns + 1))
						EndIf
						For $i = 1 To $iColumns
							_GUICtrlListView_AddColumn($hListView, 'Значение ' & $i, $iColumn_W, 2)
						Next
						_GUICtrlListView_AddArray($hListView, $aSection_N)
						$aSection_N = ''
						_SubMenuChange()
					Else
						MsgBox(16, 'Error', 'Произошла ошибка. Попробуйте еще раз.')
					EndIf
				Case $nButtonDefault
					$sFileDefault = @ScriptDir & '\BackUpIni\' & _
						StringRegExpReplace(GUICtrlRead($nInputIni), '^.*\\', '')
					_GUICtrlListView_DeleteAllItems($hListView)
					For $i = $iColumns - 1 To 0 Step -1
						_GUICtrlListView_DeleteColumn($hListView, 1)
					Next
					For $i = 1 To 5
						$aSection_N = _IniReadSectionMy($sFileDefault, GUICtrlRead($nComboSection))
						$iColumns = @extended
						If Not @error Then ExitLoop
					Next
					If Not @error Then
						If ($iColumns + 1) * $iColumn_W <> $iW_LV Then
							$iW_LV = ($iColumns + 1) * $iColumn_W
							If $iW_LV + $iLeft * 2 + $iDelta < 400 Then
								$iW_LV = 400 - $iLeft * 2
							EndIf
							WinMove($hMain_GUI, '', (@DesktopWidth - ($iW_LV + $iLeft * 2 + $iDelta)) / 2, _
									(@DesktopHeight - 400) / 2, $iW_LV + $iLeft * 2 + $iDelta * 2)

							GUICtrlSetPos($nInputIni, $iLeft, 5, $iW_LV + $iDelta)
							GUICtrlSetPos($nListView, $iLeft, $iY_LV, $iW_LV + $iDelta)
						EndIf
						For $i = 1 To $iColumns
							_GUICtrlListView_AddColumn($hListView, 'Значение ' & $i, $iColumn_W, 2)
						Next
						_GUICtrlListView_AddArray($hListView, $aSection_N)
						$aSection_N = ''
						_SubMenuChange()
					Else
						MsgBox(16, 'Error', 'Произошла ошибка. Попробуйте еще раз.')
					EndIf
					GUICtrlSetState($nListView, $GUI_FOCUS)
				Case $nButtonSave
					$iLV = _GUICtrlListView_GetItemCount($hListView)
					If $iLV Then
						$sSectionSave = GUICtrlRead($nComboSection)
						$sFileSave = GUICtrlRead($nInputIni)
						IniDelete($sFileSave, $sSectionSave)
						For $i = 0 To $iLV - 1
							$sValue = ''
							$sKeySave = _GUICtrlListView_GetItemText($hListView, $i)
							For $j = 1 To $iColumns
								$sTempSave = _GUICtrlListView_GetItemText($hListView, $i, $j)
								If $sTempSave Then
									$sValue &= '<' & $sTempSave & '>'
								Else
									$sValue &= '<Здесь не знаю, что надо>'
								EndIf
							Next
							IniWrite($sFileSave, $sSectionSave, $sKeySave, $sValue)
						Next
					EndIf
					GUICtrlSetState($nListView, $GUI_FOCUS)
					$iLV = 0
					$sSectionSave = ''
					$sFileSave = ''
					$sValue = ''
					$sKeySave = ''
					$sTempSave = ''
				Case $nSubMenuEdit
					_Editor_LV_Show()
				Case $nSubMenuDel
					_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, '', $iLast_LV_SubIndex)
					_SubMenuChange()
				Case $nSubMenuDelAll
					_GUICtrlListView_DeleteItem($hListView, $iLast_LV_Index)
					_SubMenuChange()
				Case $nListView
					If GUICtrlGetState($nListView) = 0 Then
						ShowMenu($hMain_GUI, $nContextMenuN, $hListView, 1)
					EndIf
				Case $nSubMenuNF
					$iLV = _GUICtrlListView_GetItemCount($hListView)
					If $iLV Then
						For $i = 0 To $iLV - 1
							$sOld = _GUICtrlListView_GetItemText($hListView, $i)
							$sNew = $i + 1 & StringRegExpReplace($sOld, '[0-9]', '')
							_GUICtrlListView_SetItemText($hListView, $i, $sNew)
						Next
					EndIf
					$iLV = 0
				Case $nSubMenuNE
					$iLV = _GUICtrlListView_GetItemCount($hListView)
					If $iLV Then
						For $i = 0 To $iLV - 1
							$sOld = _GUICtrlListView_GetItemText($hListView, $i)
							$sNew = StringRegExpReplace($sOld, '[0-9]', '') & $i + 1
							_GUICtrlListView_SetItemText($hListView, $i, $sNew)
						Next
					EndIf
					$iLV = 0
				Case Else
					$iCountRow = _GUICtrlListView_GetItemCount($hListView) - 1
					
					For $i = 0 To $iCountRow
						If $aMsg[0] = $aChangeSubMenu[$i] Then
							ReDim $aOld[$iColumns + 1]
							For $j = 1 To $iColumns
								$aOld[$j] = _GUICtrlListView_GetItemText($hListView, $iLast_LV_Index, $j)
							Next
							ReDim $aNew[$iColumns + 1]
							For $j = 1 To $iColumns
								$aNew[$j] = _GUICtrlListView_GetItemText($hListView, $i, $j)
							Next
							For $j = 1 To $iColumns
								_GUICtrlListView_SetItemText($hListView, $i, $aOld[$j], $j)
							Next
							For $j = 1 To $iColumns
								_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, $aNew[$j], $j)
							Next
							_SubMenuChange()
						Else
							ContinueLoop
						EndIf
					Next
			EndSwitch
		Case $hMain_GUI
			Switch $aMsg[0]
				Case $GUI_EVENT_CLOSE
					Exit
				Case $Button
					If Not @Compiled Then
						$sFile = @ScriptDir & '\conf.ini'
						If Not FileExists($sFile) Then
							MsgBox(16, 'Error', 'Отсутствует файл ' & $sFile)
							Exit
						EndIf
					Else
						If Not $CmdLine[0] Then
							MsgBox(16, 'Error', 'Для запуска перетащите' & @CRLF & 'ини-файл на иконку утилиты')
							Exit
						Else
							$sFile = $CmdLine[1]
						EndIf
					EndIf

					If StringRight($sFile, 4) <> '.ini' Then
						MsgBox(16, 'Error', 'Это не ини-файл.')
						Exit
					EndIf

					$iDelta = _WinAPI_GetSystemMetrics(33)

					For $i = 1 To 5
						$aSectionsAll = IniReadSectionNames($sFile)
						If Not @error Then ExitLoop
					Next
					If @error Then
						MsgBox(16, 'Error', 'Произошла ошибка. Попробуйте еще раз.')
						Exit
					EndIf

					For $i = 1 To $aSectionsAll[0]
						$sData &= $aSectionsAll[$i] & '|'
					Next
					$sData = StringTrimRight($sData, 1)

					For $i = 1 To 5
						$aSection_N = _IniReadSectionMy($sFile, $aSectionsAll[$aSectionsAll[0]])
						$iColumns = @extended
						If Not @error Then ExitLoop
					Next
					If @error Then
						MsgBox(16, 'Error', 'Произошла ошибка. Попробуйте еще раз.')
						Exit
					EndIf

					FileCopy($sFile, @ScriptDir & '\BackUpIni\' & StringRegExpReplace($sFile, '^.*\\', ''), 9)

					$iW_LV = ($iColumns + 1) * $iColumn_W
					If $iW_LV + $iLeft * 2 + $iDelta < 400 Then
						$iW_LV = 400 - $iLeft * 2 - $iDelta
					EndIf
					
					_IniEditor_Create()
			EndSwitch
	EndSwitch
WEnd

Func _IniEditor_Create()
	If $hIniEditor_GUI And WinExists($hIniEditor_GUI) Then Return
	
	$hIniEditor_GUI = GUICreate('Редактор ini-файлов', $iW_LV + $iLeft * 2 + $iDelta, 400, _
		(@DesktopWidth - ($iW_LV + $iLeft * 2 + $iDelta)) / 2, (@DesktopHeight - 400) / 2)
	GUICtrlCreatePic(@ScriptDir & "\images\001.jpg", 0, 0, (@DesktopWidth - ($iW_LV + $iLeft * 2 + $iDelta)), (@DesktopHeight - 400), $WS_CLIPSIBLINGS)
	
	;GUISetBkColor(0x00FFFF)
	
	$nInputIni = GUICtrlCreateInput($sFile, $iLeft, 5, $iW_LV + $iDelta, 20, _
		BitOR($GUI_SS_DEFAULT_INPUT, $ES_LEFT, $ES_READONLY))
	GUICtrlSetBkColor(-1, 0xF5F5DC)
	$nComboSection = GUICtrlCreateCombo('', $iLeft, 33, 100, 20, _
		BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE, $ES_READONLY))
	GUICtrlSetData(-1, $sData, $aSectionsAll[$aSectionsAll[0]])
	GUICtrlSetBkColor(-1, 0xF5F5DC)
	GUICtrlSetResizing($nComboSection, $GUI_DOCKLEFT + $GUI_DOCKSIZE)
	$sData = ''
	$aSectionsAll = ''

	$nButtonSave = GUICtrlCreateButton('Сохранить', 120, 32, 60, 22)
	GUICtrlSetResizing($nButtonSave, $GUI_DOCKLEFT + $GUI_DOCKSIZE)
	$nButtonDefault = GUICtrlCreateButton('Отменить', 190, 32, 60, 22)
	GUICtrlSetResizing($nButtonDefault, $GUI_DOCKLEFT + $GUI_DOCKSIZE)

	$nListView = GUICtrlCreateListView('', $iLeft, $iY_LV, $iW_LV + $iDelta, 330, _
		$LVS_REPORT, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
	GUICtrlSetBkColor(-1, 0xF5F5DC)
	$hListView = GUICtrlGetHandle($nListView)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	_GUICtrlListView_AddColumn($hListView, '1', $iColumn_W, 2)
	;For $i = 1 To $iColumns
	;	_GUICtrlListView_AddColumn($hListView, 'Значение ' & $i, $iColumn_W, 2)
	;Next
	_GUICtrlListView_AddArray($hListView, $aSection_N)
	$aSection_N = ''

	GUICtrlSetState($nListView, $GUI_FOCUS)
	$nDummyMenu = GUICtrlCreateDummy()
	$nContextMenu = GUICtrlCreateContextMenu($nDummyMenu)
	$hContextMenu = GUICtrlGetHandle($nContextMenu)
	$nSubMenuDel = GUICtrlCreateMenuItem('Удалить значение', $nContextMenu)
	$nSubMenuDelAll = GUICtrlCreateMenuItem('Удалить строку', $nContextMenu)
	$nSubMenuEdit = GUICtrlCreateMenuItem('Редактировать значение', $nContextMenu)

	_SubMenuChange(0)

	$nDummyMenuN = GUICtrlCreateDummy()
	$nContextMenuN = GUICtrlCreateContextMenu($nDummyMenuN)
	$hContextMenuN = GUICtrlGetHandle($nContextMenuN)
	$nSubMenuN = GUICtrlCreateMenu('Пронумеровать ключи', $nContextMenuN)
	$nSubMenuNF = GUICtrlCreateMenuItem('Число в начале', $nSubMenuN)
	$nSubMenuNE = GUICtrlCreateMenuItem('Число в конце', $nSubMenuN)

	$hEditor = GUICreate('Редактировать', $iColumn_W, 14, 110, 100, $WS_POPUP, _
		BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST, $WS_EX_COMPOSITED))
	$nInputEditor = GUICtrlCreateInput('', 0, 0, $iColumn_W, 14);, $ES_CENTER)
	GUICtrlSetBkColor(-1, 0xDCDCDC)
	GUICtrlSetState(-1, $GUI_HIDE)

	$nComboEditor = GUICtrlCreateCombo('', 0, 0, $iColumn_W, 14)
	GUICtrlSetBkColor(-1, 0xDCDCDC)
	GUICtrlSetState(-1, $GUI_HIDE)

	_WinAPI_SetParent($hEditor, $hIniEditor_GUI)

	GUISetState(@SW_SHOW, $hIniEditor_GUI)
	GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')

	;_WinAPI_EmptyWorkingSet()
EndFunc

Func ShowMenu($hWnd, $nContextID, $nContextControlID, $iMouse = 0)
	Local $hMenu = GUICtrlGetHandle($nContextID)
	Local $iCtrlPos = ControlGetPos($hWnd, '', $nContextControlID)
	Local $X = $iCtrlPos[0]
	Local $Y = $iCtrlPos[1] + $iCtrlPos[3]
	ClientToScreen($hWnd, $X, $Y)
	If $iMouse Then
		$X = MouseGetPos(0)
		$Y = MouseGetPos(1)
	EndIf
	DllCall('user32.dll', 'int', 'TrackPopupMenuEx', 'hwnd', $hMenu, 'int', 0, 'int', _
			$X, 'int', $Y, 'hwnd', $hWnd, 'ptr', 0)
EndFunc   ;==>ShowMenu

Func ClientToScreen($hWnd, ByRef $X, ByRef $Y)
	Local $stPoint = DllStructCreate('int;int')

	DllStructSetData($stPoint, 1, $X)
	DllStructSetData($stPoint, 2, $Y)
	DllCall('user32.dll', 'int', 'ClientToScreen', 'hwnd', $hWnd, 'ptr', _
			DllStructGetPtr($stPoint))
	$X = DllStructGetData($stPoint, 1)
	$Y = DllStructGetData($stPoint, 2)
	$stPoint = 0
EndFunc   ;==>ClientToScreen

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
	Local $hWndFrom, $iCode, $tNMHDR, $hWndListView, $tInfo

	$hWndListView = $hListView
	If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

	$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
	$hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
	$iCode = DllStructGetData($tNMHDR, 'Code')

	Switch $hWndFrom
		Case $hWndListView
			Switch $iCode
				Case $NM_RCLICK
					If $fEdit Then
						_Editor_LV_Save()
					EndIf
					$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
					$iIndexItem = DllStructGetData($tInfo, 'Index')
					$iIndexSubItem = DllStructGetData($tInfo, 'SubItem')
					If $iIndexSubItem <> -1 Then
						$iLast_LV_SubIndex = $iIndexSubItem
					EndIf
					If $iIndexItem <> -1 Then
						$iLast_LV_Index = $iIndexItem
						For $i = 0 To $iCountRow
							GUICtrlSetState($aChangeSubMenu[$i], $GUI_ENABLE)
						Next
						GUICtrlSetState($aChangeSubMenu[$iIndexItem], $GUI_DISABLE)
						ShowMenu($hWnd, $nContextMenu, $hListView, 1)
					EndIf
				Case $NM_DBLCLK
					$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
					$iIndexItem = DllStructGetData($tInfo, 'Index')
					$iIndexSubItem = DllStructGetData($tInfo, 'SubItem')
					If $iIndexSubItem <> -1 Then
						$iLast_LV_SubIndex = $iIndexSubItem
					EndIf
					If $iIndexItem <> -1 Then
						$iLast_LV_Index = $iIndexItem
					EndIf
					If Not $fEdit Then
						_Editor_LV_Show()
					EndIf
				Case $NM_CLICK, $NM_KILLFOCUS, $LVN_COLUMNCLICK
					If $fEdit Then
						_Editor_LV_Save()
					EndIf
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Func _Editor_LV_Save()
	HotKeySet('{ENTER}')
	HotKeySet('{UP}')
	HotKeySet('{DOWN}')
	If Not $fCombo Then
		_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, GUICtrlRead($nInputEditor), _
				$iLast_LV_SubIndex)
		GUICtrlSetData($nInputEditor, '')
		GUISetState(@SW_HIDE, $hEditor)
		_SubMenuChange()
	Else
		Local $sFromComboEditor = GUICtrlRead($nComboEditor)
		If $sFromComboEditor Then
			_GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, $sFromComboEditor, $iLast_LV_SubIndex)
		EndIf
		GUISetState(@SW_HIDE, $hEditor)
		GUICtrlSetData($nComboEditor, '')
	EndIf
	$aRect = ''
	$fEdit = False
EndFunc   ;==>_Editor_LV_Save

Func _Editor_LV_Show()
	$aRect = _GUICtrlListView_GetSubItemRect($hListView, $iLast_LV_Index, $iLast_LV_SubIndex)
	WinMove($hEditor, '', $aRect[0] + $iLeft + $iDelta, $aRect[1] + $iY_LV, $iColumn_W, _
			($aRect[3] - $aRect[1]) + $iDelta)
	;If $iLast_LV_SubIndex Then
		Switch $iLast_LV_SubIndex
			Case 4 ;первая колонка.
				GUICtrlSetPos($nComboEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
				GUICtrlSetData($nComboEditor, 'yes|no')
				GUICtrlSetState($nComboEditor, $GUI_SHOW)
				GUICtrlSetState($nInputEditor, $GUI_HIDE)
				GUISetState(@SW_SHOW, $hEditor)
				$fCombo = True
			Case 5 ;пятая колонка
				GUICtrlSetPos($nComboEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
				GUICtrlSetData($nComboEditor, 'yes|no')
				GUICtrlSetState($nComboEditor, $GUI_SHOW)
				GUICtrlSetState($nInputEditor, $GUI_HIDE)
				GUISetState(@SW_SHOW, $hEditor)
				$fCombo = True
			Case Else ;любая, кроме тех, которые указаны выше.
				GUICtrlSetPos($nInputEditor, 0, 0, $iColumn_W, ($aRect[3] - $aRect[1]) + $iDelta)
				$sText = _GUICtrlListView_GetItemText($hListView, $iLast_LV_Index, $iLast_LV_SubIndex)
				GUICtrlSetData($nInputEditor, $sText)
				GUICtrlSetState($nInputEditor, $GUI_SHOW)
				GUICtrlSetState($nComboEditor, $GUI_HIDE)
				GUISetState(@SW_SHOW, $hEditor)
				$fCombo = False
		EndSwitch
	;EndIf
	$fEdit = True
	HotKeySet('{ENTER}', '_Editor_LV_Save')
	HotKeySet('{UP}', '_Editor_LV_Save')
	HotKeySet('{DOWN}', '_Editor_LV_Save')
EndFunc   ;==>_Editor_LV_Show

Func _IniReadSectionMy($sFile_Ini, $sSection_Name)
	Local $aSection_Name_Temp, $aValue_Temp, $aReturn_Array[1][2], $iMax = 1

	If Not FileExists($sFile_Ini) Then Return SetError(1)
	$aSection_Name_Temp = IniReadSection($sFile_Ini, $sSection_Name)
	If @error Then Return SetError(1)
	ReDim $aReturn_Array[$aSection_Name_Temp[0][0]][$iMax + 1]
	For $i = 1 To $aSection_Name_Temp[0][0]
		If Not StringInStr($aSection_Name_Temp[$i][1], '<') Or Not _
				StringInStr($aSection_Name_Temp[$i][1], '>') Then
			MsgBox(16, 'Редактор ini-файлов', _
					'Данная утилита предназначена для редактирования только тех ини-файлов,' & _
					@CRLF & 'в котором все значения заключены в теги "<" и ">", например,' & _
					@CRLF & '<Значение 1><Значение 2><Значение 3>...<Значение N>')
			Exit
			;Return SetError(1)
		EndIf
		$aValue_Temp = StringRegExp($aSection_Name_Temp[$i][1], '<(.*?)>', 3)
		If @error Then Return SetError(1)
		If $iMax < UBound($aValue_Temp) Then
			$iMax = UBound($aValue_Temp)
			ReDim $aReturn_Array[$aSection_Name_Temp[0][0]][$iMax + 1]
		EndIf
		$aReturn_Array[$i - 1][0] = $aSection_Name_Temp[$i][0]
		For $j = 0 To UBound($aValue_Temp) - 1
			$aReturn_Array[$i - 1][$j + 1] = $aValue_Temp[$j]
		Next
	Next
	Return SetError(0, $iMax, $aReturn_Array)
EndFunc   ;==>_IniReadSectionMy

Func _SubMenuChange($iFlag = 1)
	If $iFlag Then
		_GUICtrlMenu_DeleteMenu($hContextMenu, 3)
	EndIf
	$nSubMenuChange = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
	$iCountRow = _GUICtrlListView_GetItemCount($hListView) - 1
	ReDim $aChangeSubMenu[$iCountRow + 1]
	For $i = 0 To $iCountRow
		$sChangeSubMenu = ''
		If $iColumns > 1 Then
			For $j = 1 To 2
				$sChangeSubMenu &= _GUICtrlListView_GetItemText($hListView, $i, $j) & Chr(32)
			Next
			$sChangeSubMenu &= '...'
		Else
			$sChangeSubMenu = _GUICtrlListView_GetItemText($hListView, $i, 1) & Chr(32) & '...'
		EndIf
		$aChangeSubMenu[$i] = GUICtrlCreateMenuItem($sChangeSubMenu, $nSubMenuChange)
	Next
EndFunc   ;==>_SubMenuChange

Func _Del_BackUpIni()
	DirRemove(@ScriptDir & '\BackUpIni', 1)
EndFunc   ;==>_Del_BackUpIni

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

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

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

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

Отправлено: 23:21, 03-03-2011 | #2