Ветеран
Сообщения: 812
Благодарности: 353
|
Профиль
|
Отправить PM
| Цитировать
Centrinar,
Болванка у меня получилась такая. На Input надо перетащить ини-файл или выбрать его, нажав кнопку "...". В ComboBox загрузятся секции. После выбора секции надо нажать кнопку Загрузить. В ListView загрузятся ключи и значения из выбранной секции. Выделите строку, чтобы ее редактировать. Значения можно удалять или менять местами как угодно между собой, кликнув на строке правой кнопкой мыши, ключи при этом остаются на месте. Можно удалить всю строку.Кнопка Сохранить - сохранить изменения, они запишутся в ини-файл. Кнопка Отменить - отменить все произведенные изменения. Кнопка Очистить - удалить все данные из окна.
Ругается, что символов слишком много.
Первая часть:
читать дальше »
Код: ![Выделить весь код](images/misc/selectcode.png)
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <GuiMenu.au3>
#include <Misc.au3>
Global $hListView, $iLast_LV_Index, $hGui, $sOld, $sNew, $fLV = False, $iCount
_Singleton(@ScriptName)
$hGui = GUICreate('Редактор ini-файлов', 400, 400, -1, -1, -1, $WS_EX_ACCEPTFILES)
$nInputIni = GUICtrlCreateInput('Перетащите сюда ini-файл', 10, 5, 355, 20, _
BitOR($GUI_SS_DEFAULT_INPUT, $ES_LEFT, $ES_READONLY))
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
$nButtonIni = GUICtrlCreateButton('...', 368, 4, 22, 22)
$nComboSection = GUICtrlCreateCombo('', 10, 33, 100, 20, _
BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE, $ES_READONLY))
$nButtonGet = GUICtrlCreateButton('Загрузить', 120, 32, 60, 22)
$nButtonSave = GUICtrlCreateButton('Сохранить', 190, 32, 60, 22)
$nButtonDefault = GUICtrlCreateButton('Отменить', 260, 32, 60, 22)
$nButtonDelAll = GUICtrlCreateButton('Очистить', 330, 32, 60, 22)
$nListView = GUICtrlCreateListView('', 10, 60, 380, 330, -1, _
BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
$hListView = GUICtrlGetHandle($nListView)
_GUICtrlListView_AddColumn($hListView, 'Ключ', 100, 2)
_GUICtrlListView_AddColumn($hListView, 'Значение', 270, 2)
For $i = $nComboSection To $nListView
GUICtrlSetState($i, $GUI_DISABLE)
Next
$nDummyMenu = GUICtrlCreateDummy()
$nContextMenu = GUICtrlCreateContextMenu($nDummyMenu)
$hContextMenu = GUICtrlGetHandle($nContextMenu)
$nSubMenuDel = GUICtrlCreateMenuItem('Удалить значение', $nContextMenu)
$nSubMenuDelAll = GUICtrlCreateMenuItem('Удалить строку', $nContextMenu)
GUISetState()
GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
|