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

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

Аватара для madmasles

Ветеран


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

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


Вторая часть:
читать дальше »
Код: Выделить весь код
While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $GUI_EVENT_DROPPED
            If StringRight(@GUI_DragFile, 4) <> '.ini' Then
                GUICtrlSetData($nInputIni, 'Это не ini-файл')
            Else
                FileCopy(@GUI_DragFile, @TempDir & '\' & _
                        StringRegExpReplace(@GUI_DragFile, '^.*\\', ''), 1)
                $fLV = False
                _GUICtrlListView_DeleteAllItems($hListView)
                GUICtrlSetData($nComboSection, '')
                GUICtrlSetData($nInputIni, '')
                For $i = $nComboSection To $nListView
                    GUICtrlSetState($i, $GUI_DISABLE)
                Next
                GUICtrlSetData($nInputIni, @GUI_DragFile)
                GUICtrlSetState($nComboSection, $GUI_ENABLE)
                GUICtrlSetState($nButtonGet, $GUI_ENABLE)
                $aIniTemp = IniReadSectionNames(GUICtrlRead($nInputIni))
                If Not @error Then
                    $sData = ''
                    For $i = 1 To $aIniTemp[0]
                        $sData &= $aIniTemp[$i] & '|'
                    Next
                    $sData = StringTrimRight($sData, 1)
                    GUICtrlSetData($nComboSection, $sData, $aIniTemp[$aIniTemp[0]])
                EndIf
                $aIniTemp = 0
            EndIf
        Case $nButtonIni
            $sFileIni = FileOpenDialog('Выберите ini-файл', _
                    @ScriptDir & '\', 'ini-файл (*.ini)', 1)
            If Not @error Then
                FileCopy($sFileIni, @TempDir & '\' & _
                        StringRegExpReplace($sFileIni, '^.*\\', ''), 1)
                $fLV = False
                _GUICtrlListView_DeleteAllItems($hListView)
                GUICtrlSetData($nComboSection, '')
                GUICtrlSetData($nInputIni, '')
                For $i = $nComboSection To $nListView
                    GUICtrlSetState($i, $GUI_DISABLE)
                Next
                GUICtrlSetData($nInputIni, $sFileIni)
                GUICtrlSetState($nComboSection, $GUI_ENABLE)
                GUICtrlSetState($nButtonGet, $GUI_ENABLE)
                $aIniTemp = IniReadSectionNames($sFileIni)
                If Not @error Then
                    $sData = ''
                    For $i = 1 To $aIniTemp[0]
                        $sData &= $aIniTemp[$i] & '|'
                    Next
                    $sData = StringTrimRight($sData, 1)
                    GUICtrlSetData($nComboSection, $sData, $aIniTemp[$aIniTemp[0]])
                EndIf
                $aIniTemp = 0
            Else
                GUICtrlSetData($nInputIni, 'Вы не выбрали ini-файл')
            EndIf
        Case $nButtonGet
            $aIniTemp = IniReadSection(GUICtrlRead($nInputIni), GUICtrlRead($nComboSection))
            If Not @error Then
                GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
                GUICtrlSetState($nComboSection, $GUI_DISABLE)
                GUICtrlSetState($nButtonGet, $GUI_DISABLE)
                _GUICtrlListView_DeleteAllItems($hListView)
                _GUICtrlMenu_DeleteMenu($hContextMenu, 2)
                $nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
                Dim $aSB_Item[$aIniTemp[0][0]]
                $iCount = $aIniTemp[0][0] - 1
                For $i = 1 To $iCount + 1
                    GUICtrlCreateListViewItem($aIniTemp[$i][0] & _
                            '|' & $aIniTemp[$i][1], $nListView)
                    $aSB_Item[$i - 1] = GUICtrlCreateMenuItem($aIniTemp[$i][1], $nSubMenu)
                Next
                GUICtrlSetState($nListView, $GUI_ENABLE)
                GUICtrlSetState($nButtonSave, $GUI_ENABLE)
                GUICtrlSetState($nButtonDefault, $GUI_ENABLE)
                GUICtrlSetState($nButtonDelAll, $GUI_ENABLE)
                $fLV = True
            EndIf
        Case $nButtonDefault
            $aIniTemp = IniReadSection(@TempDir & '\' & _
                    StringRegExpReplace(GUICtrlRead($nInputIni), '^.*\\', ''), _
                    GUICtrlRead($nComboSection))
            If Not @error Then
                GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
                _GUICtrlListView_DeleteAllItems($hListView)
                _GUICtrlMenu_DeleteMenu($hContextMenu, 2)
                $nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
                Dim $aSB_Item[$aIniTemp[0][0]]
                $iCount = $aIniTemp[0][0] - 1
                For $i = 1 To $iCount + 1
                    GUICtrlCreateListViewItem($aIniTemp[$i][0] & _
                            '|' & $aIniTemp[$i][1], $nListView)
                    $aSB_Item[$i - 1] = GUICtrlCreateMenuItem($aIniTemp[$i][1], $nSubMenu)
                Next
            EndIf
        Case $nButtonDelAll
            $fLV = False
            _GUICtrlListView_DeleteAllItems($hListView)
            GUICtrlSetData($nComboSection, '')
            GUICtrlSetData($nInputIni, '')
            GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
            For $i = $nComboSection To $nListView
                GUICtrlSetState($i, $GUI_DISABLE)
            Next
        Case $nButtonSave
            GUICtrlSetState($nSubMenuDelAll, $GUI_ENABLE)
            $iLV = _GUICtrlListView_GetItemCount($hListView)
            If $iLV Then
                For $i = 0 To $iLV - 1
                    IniWrite(GUICtrlRead($nInputIni), GUICtrlRead($nComboSection), _
                            _GUICtrlListView_GetItemText($hListView, $i), _
                            _GUICtrlListView_GetItemText($hListView, $i, 1))
                Next
            EndIf
        Case $nSubMenuDel
            _GUICtrlListView_SetItemText($hListView, $iLast_LV_Index, 0, 1)
            For $i = 0 To $iCount
                GUICtrlSetData($aSB_Item[$i], _
                        _GUICtrlListView_GetItemText($hListView, $i, 1))
            Next
        Case $nSubMenuDelAll
            _GUICtrlListView_DeleteItem($hListView, $iLast_LV_Index)
            $iCount = _GUICtrlListView_GetItemCount($hListView) - 1
            If $iCount > 0 Then
                _GUICtrlMenu_DeleteMenu($hContextMenu, 2)
                $nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
                Dim $aSB_Item[$iCount + 1]
                For $i = 0 To $iCount
                    $aSB_Item[$i] = GUICtrlCreateMenuItem(_GUICtrlListView_GetItemText( _
                            $hListView, $i, 1), $nSubMenu)
                Next
            Else
                GUICtrlSetState($nSubMenuDelAll, $GUI_DISABLE)
                _GUICtrlMenu_DeleteMenu($hContextMenu, 2)
                $nSubMenu = GUICtrlCreateMenu('Поменять значение местами с', $nContextMenu)
                Dim $aSB_Item[1]
                $aSB_Item[0] = GUICtrlCreateMenuItem(_GUICtrlListView_GetItemText( _
                        $hListView, 0, 1), $nSubMenu)
            EndIf

Последний раз редактировалось madmasles, 14-01-2011 в 08:55.

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

Отправлено: 08:12, 14-01-2011 | #3