Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Работа со списками на AutoIt (http://forum.oszone.net/showthread.php?t=140031)

Demka_DV 13-05-2009 21:00 1117672

Работа со списками на AutoIt
 
Добрый день, есть вопрос...при программировании на Autoit копирую записи из одного списка в другой при помощи функции _GUICtrlListView_CopyItems, потом необходимо очистить оба списка, функция _GUICtrlListView_DeleteAllItems первый список очищает, а второй нет....как разрешить эту задачу?

beve 14-05-2009 00:07 1117806

Цитата:

Цитата Demka_DV
первый список очищает, а второй нет....как разрешить эту задачу? »

Когда задаете вопросы, покажите ваш пример где не работает, так тому кто помочь захочет, не нужно будет гадать или угадывать, что вы имели ввиду... Согласитесь так будет проще ответить, и сразу в 10-ку.

Demka_DV 14-05-2009 09:41 1118000

Использование функций _GUICtrlListView_DeleteAllItems и _GUICtrlListView_DeleteItem, не приводит к результату
Мой пример:

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>

Global $listview1, $listview2
Global $btn[3]
Global $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_SUBITEMIMAGES)
GUICreate("Расшифровка и калькуляция",600,530) ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW)
$btn[0]=GUICtrlCreateButton (">>", 270, 180, 50) ;Добавляем кнопку ввод данных
$btn[1]=GUICtrlCreateButton ("DelR", 270, 220, 50) ;Добавляем кнопку ввод данных
$btn[2]=GUICtrlCreateButton ("DelL", 270, 260, 50) ;Добавляем кнопку ввод данных
$listview2 = GUICtrlCreateListView("", 340, 140, 250, 170)
_GUICtrlListView_SetExtendedListViewStyle($listview2, $exStyles);Применяем стиль
_GUICtrlListView_AddColumn($listview2, "Должность", 75);Добавляем столбец
_GUICtrlListView_AddColumn($listview2, "Оклад", 70);Добавляем столбец
GUISetState()
Example1()
Func Example1()
Tablica1()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE ;если закрыть окно
ExitLoop
Case $btn[0] ;нажата кнопка 0
_CopyRight()
Case $btn[1] ;нажата кнопка 1 ; вызов функции не работает
_DeleteRight($listview2)
Case $btn[2] ;нажата кнопка 2 ; та же функция, но уже работает
_DeleteRight($listview1)
EndSwitch
WEnd
GUIDelete()
EndFunc

Func Tablica1()
$listview1 = GUICtrlGetHandle(GUICtrlCreateListView("", 10, 140, 250, 170, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE));,$LVS_SORTDESCENDING) ;добавляем лист бокс
_GUICtrlListView_SetExtendedListViewStyle($listview1, $exStyles);Применяем стиль
_GUICtrlListView_AddColumn($listview1, "Должность", 75) ;Добавляем столбец
_GUICtrlListView_AddColumn($listview1, "Оклад", 70);Добавляем столбец

For $i=0 To 5
If $i<=5 Then
_GUICtrlListView_AddItem($listview1, "инженер"&$i, $i) ;Заполняем лист
_GUICtrlListView_AddSubItem($listview1, $i, "зряплата"&$i, 1, $i+1) ;Заполняем лист
EndIf
Next

EndFunc
Func _CopyRight() ;функция копирования
_GUICtrlListView_CopyItems($listview1, $listview2)
EndFunc
Func _DeleteRight($x) ;функция удаления
_GUICtrlListView_DeleteItem($x, 0)
EndFunc

Demka_DV 14-05-2009 11:10 1118087

Вопрос разрешился
при объявлении первого списка я использовал
$listview1 = GUICtrlGetHandle(GUICtrlCreateListView("", 10, 140, 250, 170, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE));

а при объявлении второго списка
$listview2 = GUICtrlCreateListView("", 340, 140, 250, 170)

стоило заменить второе объявление на
$listview2 = GUICtrlGetHandle(GUICtrlCreateListView("", 340, 140, 250, 170, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
Справился сам, тема закрыта


Время: 11:54.

Время: 11:54.
© OSzone.net 2001-