FireLord Posted November 19, 2007 Share Posted November 19, 2007 I have two columns in my listview. If at the beginning of my script it executes certain code and puts something in column two and later on it executes code and needs to put something right beside what it just did except in the first column, would I just do GUICtrlCreateListViewItem("whatever", $nListview)? Because when I do it ends up in column one, but it is below the listview item that was created at the beginning of my script. Why? [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
Siao Posted November 19, 2007 Share Posted November 19, 2007 I have two columns in my listview. If at the beginning of my script it executes certain code and puts something in column two and later on it executes code and needs to put something right beside what it just did except in the first column, would I just do GUICtrlCreateListViewItem("whatever", $nListview)? Because when I do it ends up in column one, but it is below the listview item that was created at the beginning of my script. Why?Aren't the function names self-explanatory?GUICtrlCreateListViewItem creates a new item (row) in a listview.To modify text of a listview item - GUICtrlSetData. "be smart, drink your wine" Link to comment Share on other sites More sharing options...
FireLord Posted November 19, 2007 Author Share Posted November 19, 2007 Aren't the function names self-explanatory?GUICtrlCreateListViewItem creates a new item (row) in a listview.To modify text of a listview item - GUICtrlSetData.Thanks. Head isn't clear today. [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
smashly Posted November 19, 2007 Share Posted November 19, 2007 (edited) hi,#include <GUiconstants.au3> GUICreate(":-)",320,250, 100,200) $Listview = GUICtrlCreateListView ("col1 |col2 ",10,10,300,150) $additem = GUICtrlCreateButton ("Add New Item",10,170,300,20) $addcol1 = GUICtrlCreateButton ("Set selected item data Column 1",10,195,300,20) $addcol2 = GUICtrlCreateButton ("Set selected item data Column 2",10,220,300,20) GUISetState() While 1 $gMsg=GUIGetMsg() Switch $gMsg Case $GUI_EVENT_CLOSE Exit Case $additem GUICtrlCreateListViewItem("", $Listview) GUICtrlSetState(-1, $GUI_FOCUS) Case $addcol1 GUICtrlSetData(GUICtrlRead($Listview), "Column 1") Case $addcol2 GUICtrlSetData(GUICtrlRead($Listview), "|Column 2") EndSwitch WEnd Cheers Edited November 19, 2007 by smashly Link to comment Share on other sites More sharing options...
FireLord Posted November 19, 2007 Author Share Posted November 19, 2007 Aren't the function names self-explanatory? GUICtrlCreateListViewItem creates a new item (row) in a listview. To modify text of a listview item - GUICtrlSetData. I did GUICtrlSetData($nListview, "Yes") and now it's not even showing up in the listview. What I'm aiming to do is to read an INI's values (that part is flawless) and take each one and enter them into an input in another window. I'm trying to get each one entered in the window one-by-one and then if the other window replies with a msgbox then I want to write the word "No" in the listview next to the name that I just entered. Here's what i have so far but parts of it don't work. If WinExists("Window App", "" ) Then WinActivate("Window App", "") Send("{CTRLDOWN}{f}") Send("{CTRLUP}") $buddiesSearch = StringSplit($var, ",") ;Check if any words found If WinExists("Find", "") Then If IsArray($buddiesSearch) Then For $i = 1 To $buddiesSearch[0] Send($buddiesSearch[$i] & ControlClick("Find", "", 258));Clicks the search button on the window If WinActive("[CLASS:32770]", "") Then; If msgbox appears then... GUICtrlSetData($nListview, "No") Else GUICtrlSetData($nListview, "Yes") EndIf Next EndIf Else MsgBox(0, "", "Unable to search.") EndIf Else MsgBox(16, "Error", "Window App isn't even running!") EndIf [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
FireLord Posted November 19, 2007 Author Share Posted November 19, 2007 any suggestions? [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
randallc Posted November 19, 2007 Share Posted November 19, 2007 Hi, Maybe show more of your script if you want debugging; do you have the ListView item handle number correct eg? Best, Randall ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW Link to comment Share on other sites More sharing options...
FireLord Posted November 20, 2007 Author Share Posted November 20, 2007 Looks to me I showed a lot already. Yes, my listview handle # is correct. [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
smashly Posted November 20, 2007 Share Posted November 20, 2007 (edited) The reason your having trouble with GUICtrlSetData($nListview, "Yes") in your listview, GUICtrlSetData() is meant for internal use on an Autoit created listview control that's been created by Autoit in the current running script.. In your first post you didn't mention an external listview control generated by another application was what you were trying to set data in. Maybe look at using UDF listview functions from a current Autoit beta to accomplish what your after. And/Or Have a look at ControlSetText() instead maybe Cheers Edit: If your not calling an external listview then NO you haven't provided enough of a script to locate your errors.. Edited November 20, 2007 by smashly Link to comment Share on other sites More sharing options...
FireLord Posted November 20, 2007 Author Share Posted November 20, 2007 The reason your having trouble with GUICtrlSetData($nListview, "Yes") in your listview, GUICtrlSetData() is meant for internal use on an Autoit created listview control that's been created by Autoit in the current running script.. In your first post you didn't mention an external listview control generated by another application was what you were trying to set data in.Maybe look at using UDF listview functions from a current Autoit beta to accomplish what your after.And/OrHave a look at ControlSetText() instead maybeCheersEdit: If your not calling an external listview then NO you haven't provided enough of a script to locate your errors..I was trying to set the data in my own listview control, which was $nListview. BTW: I tried _GUICtrlListViewCopyItems and it is TOTALLY useless. It eithers sucks like crap or I used it wrong (which I didn't because I copied exactly from the help file)Anyways, I'll take a look at controlsettext() but if you have any ideas or suggestions on what it's not working get back to me. ThanksFireLord [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
randallc Posted November 20, 2007 Share Posted November 20, 2007 any suggestions?Hi,Again, please post your script; you have a bug and it is impossible to know what you are doing without the script..best, randall ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW Link to comment Share on other sites More sharing options...
FireLord Posted November 20, 2007 Author Share Posted November 20, 2007 Hi,Again, please post your script; you have a bug and it is impossible to know what you are doing without the script..best, randallDid you not see it in post #5? That right there is EVERYTHING that has to do with anything I'm talking about. [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
smashly Posted November 20, 2007 Share Posted November 20, 2007 Did you not see it in post #5? That right there is EVERYTHING that has to do with anything I'm talking about.Sorry but everything is not there , your expecting ppl to assume what you've written! variables, arrays and win titles you've declared and/or know what they are and belong to, but we have to guess.. eg:$nListview Is this a listview item or the main listview control?? I can't see what the problem is with posting an actuall working example of your problem.. It can't be that hard to do.. That code in post #5 is gibberish to others as it is atm, no one else can run that code without first writing the rest of the code that your not submitting for some reason. Good luck and cheers. Link to comment Share on other sites More sharing options...
SAG Posted November 20, 2007 Share Posted November 20, 2007 Take a look at the _GUICtrlListViewSetItemText function Link to comment Share on other sites More sharing options...
FireLord Posted November 20, 2007 Author Share Posted November 20, 2007 Here's more of my code. Hope it is enough. $nListview = GUICtrlCreateListView("Online|Buddy Name ", 30, 85, 230, 200) $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") If WinExists("Window App", "" ) Then WinActivate("Window App", "") Send("{CTRLDOWN}{f}") Send("{CTRLUP}") $buddiesSearch = StringSplit($var, ",") ;Check if any words found If WinExists("Find", "") Then If IsArray($buddiesSearch) Then For $i = 1 To $buddiesSearch[0] Send($buddiesSearch[$i] & ControlClick("Find", "", 258));Clicks the search button on the window If WinActive("[CLASS:32770]", "") Then; If msgbox appears then... GUICtrlSetData($nListview, "No") Else GUICtrlSetData($nListview, "Yes") EndIf Next EndIf Else MsgBox(0, "", "Unable to search.") EndIf Else MsgBox(16, "Error", "Window App isn't even running!") EndIf [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
randallc Posted November 20, 2007 Share Posted November 20, 2007 Looks to me I showed a lot already. Yes, my listview handle # is correct.Hi,That's a start, though you still have not shown what you have named each individual listview item; and there is your problemAs in previous posts,do you have the ListView item handle number correctlistview handle # is correct.You see, i asked about the "ListView item handle number ", but you are using the "listview handle # ", so can't use "$nListView" in that SetData func.Best, randall ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW Link to comment Share on other sites More sharing options...
FireLord Posted November 20, 2007 Author Share Posted November 20, 2007 (edited) Hi, That's a start, though you still have not shown what you have named each individual listview item; and there is your problem As in previous posts, You see, i asked about the "ListView item handle number ", but you are using the "listview handle # ", so can't use "$nListView" in that SetData func. Best, randall $nListview = GUICtrlCreateListView("Online|Buddy Name ", 30, 85, 230, 200) $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") If WinExists("Window App", "" ) Then WinActivate("Window App", "") Send("{CTRLDOWN}{f}") Send("{CTRLUP}") $buddiesSearch = StringSplit($var, ",") ;Check if any words found If WinExists("Find", "") Then If IsArray($buddiesSearch) Then For $i = 1 To $buddiesSearch[0] Send($buddiesSearch[$i] & ControlClick("Find", "", 258));Clicks the search button on the window If WinActive("[CLASS:32770]", "") Then; If msgbox appears then... GUICtrlSetData($nListview, "No") Else GUICtrlSetData($nListview, "Yes") EndIf Next EndIf Else MsgBox(0, "", "Unable to search.") EndIf Else MsgBox(16, "Error", "Window App isn't even running!") EndIf Func myfunc() $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") $arr = StringSplit($var, ",") For $val In $arr GUICtrlCreateListViewItem("|" & $val, $nListview) Next EndFunc I'm pretty sure what you're looking for is in myfunc(). Hope it's enough this time. Edited November 20, 2007 by FireLord [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
randallc Posted November 21, 2007 Share Posted November 21, 2007 (edited) Hi, maybe, i can't test it, but to give you an idea;,.... expandcollapse popup; nListviewProb.au3 global $ar_ListViewItemHandle[1] $nListview = GUICtrlCreateListView("Online|Buddy Name ", 30, 85, 230, 200) $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") If WinExists("Window App", "" ) Then WinActivate("Window App", "") Send("{CTRLDOWN}{f}") Send("{CTRLUP}") $buddiesSearch = StringSplit($var, ",") ;Check if any words found If WinExists("Find", "") Then If IsArray($buddiesSearch) Then For $i = 1 To $buddiesSearch[0] Send($buddiesSearch[$i] & ControlClick("Find", "", 258));Clicks the search button on the window If WinActive("[CLASS:32770]", "") Then; If msgbox appears then... GUICtrlSetData( $ar_ListViewItemHandle[$i], "No") Else GUICtrlSetData($ar_ListViewItemHandle[$i], "Yes") EndIf Next EndIf Else MsgBox(0, "", "Unable to search.") EndIf Else MsgBox(16, "Error", "Window App isn't even running!") EndIf Func myfunc() $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") $arr = StringSplit($var, ",") redim $ar_ListViewItemHandle[UBound($arr)] for $val=1 to UBound($arr)-1 ;~ For $val In $arr $ar_ListViewItemHandle[$val]=GUICtrlCreateListViewItem("|" & $val, $nListview) ;~ $ar_ListViewItemHandle[]=GUICtrlCreateListViewItem("|" & $val, $nListview) Next EndFuncbest, randall PS but where have you called "myfunc"?..... Edited November 21, 2007 by randallc ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW Link to comment Share on other sites More sharing options...
FireLord Posted November 21, 2007 Author Share Posted November 21, 2007 Hi, maybe, i can't test it, but to give you an idea;,.... expandcollapse popup; nListviewProb.au3 global $ar_ListViewItemHandle[1] $nListview = GUICtrlCreateListView("Online|Buddy Name ", 30, 85, 230, 200) $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") If WinExists("Window App", "" ) Then WinActivate("Window App", "") Send("{CTRLDOWN}{f}") Send("{CTRLUP}") $buddiesSearch = StringSplit($var, ",") ;Check if any words found If WinExists("Find", "") Then If IsArray($buddiesSearch) Then For $i = 1 To $buddiesSearch[0] Send($buddiesSearch[$i] & ControlClick("Find", "", 258));Clicks the search button on the window If WinActive("[CLASS:32770]", "") Then; If msgbox appears then... GUICtrlSetData( $ar_ListViewItemHandle[$i], "No") Else GUICtrlSetData($ar_ListViewItemHandle[$i], "Yes") EndIf Next EndIf Else MsgBox(0, "", "Unable to search.") EndIf Else MsgBox(16, "Error", "Window App isn't even running!") EndIf Func myfunc() $var = INIRead("C:\buddies.ini", "BuddyList", "Buddies", "Unable to read INI.") $arr = StringSplit($var, ",") redim $ar_ListViewItemHandle[UBound($arr)] for $val=1 to UBound($arr)-1 ;~ For $val In $arr $ar_ListViewItemHandle[$val]=GUICtrlCreateListViewItem("|" & $val, $nListview) ;~ $ar_ListViewItemHandle[]=GUICtrlCreateListViewItem("|" & $val, $nListview) Next EndFuncbest, randall PS but where have you called "myfunc"?..... I call it when I press the refresh button on my GUI. It's not shown in this code posting though. [center]See the Helpfile[/center] While Alive() DrinkWine(); }[center][/center] Link to comment Share on other sites More sharing options...
randallc Posted November 21, 2007 Share Posted November 21, 2007 hi, OK, So has that solved your problem? Randall ExcelCOM... AccessCom.. Word2... FileListToArrayNew...SearchMiner... Regexps...SQL...Explorer...Array2D.. _GUIListView...array problem...APITailRW Link to comment Share on other sites More sharing options...
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