david1337 Posted October 29, 2016 Posted October 29, 2016 Hey guys I hope that I can get a little help with this one In this GUI example using GUIListViewEx, I have a list based on items found in test.txt. _____________________________________________ item1 item2 item3 ____________________________________________ etc.... When an item is selected, and I click the GetInfo button, a message will show the text of that item. Is it possible to activate a case like that as soon as the item is selected, so I don't need a button to start the case? expandcollapse popup#include <GUIConstantsEx.au3> #include <GUIListViewEx.au3> Global $MainGUI_ManageItemList Global $File = "test.txt" Global $FileToArray = FileReadToArray("test.txt") Call ("MainGUI_ManageItemList") Func MainGUI_ManageItemList() Local $Button1 $MainGUI_ManageItemList = GUICreate("Manage Item List", 800, 400, -1, -1) $cLV = GUICtrlCreateListView("[items]", 10, 10, 400, 775, $LVS_NOCOLUMNHEADER) GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS") _GUICtrlListView_SetColumnWidth($cLV, 0, 378) $Button1 = GUICtrlCreateButton("Button 1", 425, 10, 80, 30) $RemoveItem = GUICtrlCreateButton("Remove Item", 425, 50, 80, 30) $GetInfo = GUICtrlCreateButton("GetInfo", 425, 120, 80, 30) GUISetState(@SW_SHOW, $MainGUI_ManageItemList) ; Intialise ListView Global $iLV_Index = _GUIListViewEx_Init($cLV) ; Insert lines _GUIListViewEx_Insert($FileToArray, True) ; Register required messages _GUIListViewEx_MsgRegister(True, False, False, False) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $Button1 MsgBox(0,"","Button 1 is pressed") Case $RemoveItem _GUIListViewEx_Delete() Case $GetInfo $ItemSelected = _GUICtrlListView_GetSelectedIndices($cLV, True) If IsArray($ItemSelected) And $ItemSelected[0] <> 0 Then ;This part makes sure it doesn't crash when no item is selected. $ItemSelectedText = _GUICtrlListView_GetItemText($cLV, $ItemSelected[1]) msgbox (0, "Selected item", $ItemSelectedText) EndIf EndSwitch WEnd EndFunc ;==>Main
Moderators Melba23 Posted October 29, 2016 Moderators Posted October 29, 2016 david1337, Perhaps something like this: expandcollapse popup#include <GUIConstantsEx.au3> #include <GUIListViewEx.au3> Global $iCurrentIndex = 0 Global $MainGUI_ManageItemList Global $File = @ScriptFullPath Global $FileToArray = FileReadToArray($File) MainGUI_ManageItemList() Func MainGUI_ManageItemList() Local $Button1 $MainGUI_ManageItemList = GUICreate("Manage Item List", 800, 400, -1, -1) $cLV = GUICtrlCreateListView("[items]", 10, 10, 400, 775, $LVS_NOCOLUMNHEADER) GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS") _GUICtrlListView_SetColumnWidth($cLV, 0, 378) $Button1 = GUICtrlCreateButton("Button 1", 425, 10, 80, 30) $RemoveItem = GUICtrlCreateButton("Remove Item", 425, 50, 80, 30) GUISetState(@SW_SHOW, $MainGUI_ManageItemList) ; Intialise ListView Global $iLV_Index = _GUIListViewEx_Init($cLV) ; Insert lines _GUIListViewEx_Insert($FileToArray, True) ; Register required messages _GUIListViewEx_MsgRegister(True, False, False, False) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $Button1 MsgBox(0, "", "Button 1 is pressed") Case $RemoveItem _GUIListViewEx_Delete() EndSwitch $ItemSelected = _GUICtrlListView_GetSelectedIndices($cLV, True) If IsArray($ItemSelected ) And $ItemSelected[0] <> 0 Then If $ItemSelected[1] <> $iCurrentIndex Then $iCurrentIndex = $ItemSelected[1] $ItemSelectedText = _GUICtrlListView_GetItemText($cLV, $ItemSelected[1]) MsgBox(0, "Selected item", $ItemSelectedText) EndIf EndIf WEnd EndFunc ;==>MainGUI_ManageItemList M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
david1337 Posted October 29, 2016 Author Posted October 29, 2016 Melba, thank you so much! As always, a pleasure It worked just as intended, and this time I actually understood what you did! Now that I know how to do this, I have a lot to work on - David
david1337 Posted October 31, 2016 Author Posted October 31, 2016 (edited) Hey Melba Do you know why in our example here, the first item is selected when the GUI is opened, and it doesn't react to that selection (like when you click an item)? - David Edited October 31, 2016 by david1337
Moderators Melba23 Posted October 31, 2016 Moderators Posted October 31, 2016 david1337, Quote Do you know why in our example here, the first item is selected when the GUI is opened No, but I noticed that it happened and... Quote Do you know why in our example here [...] it doesn't react to that selection ...initialised the $iCurrentIndex to 0 to ensure that it did not. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
david1337 Posted October 31, 2016 Author Posted October 31, 2016 (edited) 17 minutes ago, Melba23 said: Do you know why in our example here [...] it doesn't react to that selection Ahh yes of course Let's pretend I didn't just ask you that. I will have to work on the automatic highlight of the first item. Thanks! Edited October 31, 2016 by david1337
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