marcoptz Posted February 7, 2007 Posted February 7, 2007 Hi guys, I'm very newby in autoit (to be honest I'm newby in any development language..) but I WANT to learn to use autoit. Well, I'm in trouble trying to retrive the ctrlID of a listview item. I have a listview populated by an array. My script should shows only items which are related with some search condition. The selection criteria came from a combo. To do that I used the following code: CODE $param0 = GUICtrlRead($comboListviewC) Select case $param0 = "code" $param1 = 0 case $param0 = "firstname" $param1 = 1 case $param0 = "lastname" $param1 = 2 case $param0 = "address" $param1 = 3 case $param0 = "city" $param1 = 4 case $param0 = "codeC" $param1 = 5 case $param0 = "phone" $param1 = 6 EndSelect $param2 = GUICtrlRead($searchInputC) $param3 = GUICtrlRead($comboSearchConditionsC) for $Q = 0 to UBound($arrayC)-1 $string = _GUICtrlListViewGetItemText($listviewC, $Q, $param1) select case $string = $param2 ;do nothing case $string <> $param2 _GUICtrlListViewSetItemSelState($listviewC, $Q, 1) endselect next _GUICtrlListViewDeleteItemsSelected($listviewC) what happens is that the selected item will be deleted, and this is ok. My problem is that I cannot roll-back to the previous state: I tried to recreate the entire listview without any result. I mean that if I use the same code to recreate the listview this works fine, but the select code above does not work..it delete always ALL items!!! I need the possibility to show all the items again, reduce them whit any search condition and show all of them again..and again ..and again. I know that the _GUICtrlListViewDeleteItemsSelected() probabily is not the right solution, but I dont find any way to have the controlID of any single item in the listview. Having that ctlrid I should use something like GUICtrlSetState(controlID, @GUI_HIDE).... plase help me ps1 --sorry for my english; ps2 --if you need any details you'll be welcome
rogdog Posted February 9, 2007 Posted February 9, 2007 (edited) Hi, Does this example script do want you want to do ? CODE#include <GUIConstants.au3> #include <GuiListView.au3> Dim $Row[100], $ControlHandle[100] ; CREATE DATA ARRAY Dim $Data[100] = ["R1C1|R1C2|R1C3","R2C1|R2C2|R2C3","R3C1|R3C2|R3C3"] ; Create GUI GUICreate("listview items",220,250, 100,200) $listview = GuiCtrlCreateListView ("col1 |col2|col3 ",10,10,200,150) $buttonR2 = GuiCtrlCreateButton ("Display Row 2",10,170,80,20) $buttonALL = GuiCtrlCreateButton ("Disaply ALL",120,170,80,20) $ButtondeletR2 = GuiCtrlCreateButton ("Delete Row 2",120,200,80,20) GuiSetState() Do $msg = GuiGetMsg () Select Case $msg = $buttonR2 _GUICtrlListViewDeleteAllItems ($ListView) ; use either GuiCtrlCreateListViewItem or _GUICtrlListViewInsertItem( ;GuiCtrlCreateListViewItem($Data[1],$listview) $ControlHandle[1] = GuiCtrlCreateListViewItem($Data[1],$listview) ;_GUICtrlListViewInsertItem($listview,-1,$Data[1]) Case $msg = $buttonALL _GUICtrlListViewDeleteAllItems ($ListView) For $Row = 0 to 2 ; use either GuiCtrlCreateListViewItem or _GUICtrlListViewInsertItem( ;GuiCtrlCreateListViewItem($Data[$Row],$listview) $ControlHandle[$Row] = GuiCtrlCreateListViewItem($Data[$Row],$listview) ;_GUICtrlListViewInsertItem($listview,-1,$Data[$Row]) Next Case $msg = $ButtondeletR2 _GUICtrlListViewDeleteItem ($listview,1) EndSelect Until $msg = $GUI_EVENT_CLOSE Edited February 9, 2007 by rogdog My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
marcoptz Posted February 9, 2007 Author Posted February 9, 2007 Hi, Does this example script do want you want to do ? [.....] YES it works thanks grazie mercì
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now