Показать полную графическую версию : [решено] Работа со списками на AutoIt
Demka_DV
13-05-2009, 21:00
Добрый день, есть вопрос...при программировании на Autoit копирую записи из одного списка в другой при помощи функции _GUICtrlListView_CopyItems, потом необходимо очистить оба списка, функция _GUICtrlListView_DeleteAllItems первый список очищает, а второй нет....как разрешить эту задачу?
первый список очищает, а второй нет....как разрешить эту задачу? »
Когда задаете вопросы, покажите ваш пример где не работает, так тому кто помочь захочет, не нужно будет гадать или угадывать, что вы имели ввиду... Согласитесь так будет проще ответить, и сразу в 10-ку.
Demka_DV
14-05-2009, 09:41
Использование функций _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
Вопрос разрешился
при объявлении первого списка я использовал
$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))
Справился сам, тема закрыта
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.