Что нового

[Элементы GUI] Реализация редактируемой таблицы через GUI

Sanke

Новичок
Сообщения
8
Репутация
0
Добрый вечер.
Не могу побороть одну проблему.
Задача: Нужно выводить в гуи 3 столбца. Произвольно какая-то ячейка будет меняться путем указания строки и вывода дополнительного окошка с запросом двух новых переменных (нет еще в примере ниже). После надо обновить 3 столбца с учетом новых изменений

Сложность у меня возникает именно с определением по какой строке тыркнули...
Есть вариант сделать через excel файл, но пока не хочется связываться с дополнительным файлом.

Или может есть какой вариант реализации?

Задача именно в редактировании строки целиком, но потом нужно уметь обработать каждый элемент отдельно.

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)
global $t1[10000],$t2[10000],$t3[10000],$item[10000]

for $i=1 to 10 +1
	$t1[$i]='old '&$i ;массив старых значений
	$t2[$i]='old_new '&$i ;массив новых значений
	$t3[$i]='none '&$i ;третий массив (запасной)
next

global $listview, $button, $item1, $item2, $item3, $input1, $msg

GUICreate("listview items", 455, 455, 100, 200);создаем гуи
$listview = GUICtrlCreateListView("old           |new           |none ", 10, 10, 390, 390)
$button = GUICtrlCreateButton("Change", 10, 400, 70, 20);кнопку
for $i=1 to 10 +1
	$item[$i] = GUICtrlCreateListViewItem($t1[$i]&"|"&$t2[$i]&"|"&$t3[$i], $listview) ;выводим наши массивы в столбцы
next
GUISetState()

Do
	$msg = GUIGetMsg()
	Select
		Case $msg = $button
		;MsgBox(0, "listview item", GUICtrlRead(GUICtrlRead($listview)), 2)
		ConsoleWrite($listview)
		GUICtrlSetData(GUICtrlRead($listview), "|ТЕСТТЕСТ") ;тут меняем произвольный элемент в таблице
		ConsoleWrite(GUICtrlRead($listview)&@CRLF) ;А вот тут основная проблема, как понять какую строку мы редактировали?
	EndSelect
Until $msg = $GUI_EVENT_CLOSE

for $i=1 to 100 +1
	ConsoleWrite($item[$i])
next

;MsgBox(0, "listview item", GUICtrlRead(GUICtrlRead($listview)), 10)


С Уважением, Sanke.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Sanke [?]
Сложность у меня возникает именно с определением по какой строке тыркнули..
Посмотрите в примере к функции
Код:
_GUICtrlListView_Create()
использование WM_NOTIFY.
 
Автор
S

Sanke

Новичок
Сообщения
8
Репутация
0
т.е. придется переписывать под эту структуру все?
или можно как-то легче выдрать?
пысы: без пол-литры в этом примере не разобраться...
 
Верх