Joec49 Posted July 3, 2008 Share Posted July 3, 2008 How do I see which item/row they selected when I process the button event? Relevant code stub is below: func theview_select() $aItem1=_GUICtrlListView_GetHotItem($listview) $aItem2 = _GUICtrlListView_GetItemTextArray($listview, -1) Msgbox(64,"viewselect aItem","Value:" & $aItem1 & "; " & $aItem2) EndFunc Func theview() ;button $child=GUICreate("Reminder Event Details", 500, 400); BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_SIZEBOX)) GUISetOnEvent($GUI_EVENT_CLOSE, 'guiexit3') GUICtrlCreateLabel("REMINDER: View Event",100,10,-1,-1) GUISetBkColor(0x88AABB) GUICtrlCreateButton("SELECT",400,50,50,20) GUICtrlSetOnEvent(-1,"theview_select") GUICtrlCreateButton("VIEW",400,100,50,20) GuiCtrlSetOnevent(-1,'theview_view') GUICtrlCreateButton("DELETE",400,150,50,20) GUICtrlSetOnEvent(-1,'theview_delete') GUICtrlCreateButton("HELP",400,250,50,20) GUICtrlSetOnEvent(-1,'theview_help') GUICtrlCreateButton("QUIT",400,200,50,20) GUICtrlSetOnEvent(-1,"guiexit3") $blanks=" " $listview =GUICtrlCreateListView("Seq#|Date|Time|Text" & $blanks, 10, 10, 350, 350) ;,$LVS_SORTDESCENDING) $rows=UBound($eventArray)-1 For $x = 0 To $rows ;we load upcoming data from our arrays ;$eventArray=(yyyymmddhhmm, text) (2 columns per row) $timed=$eventArray[$x][0] ;yyyymmddhhmm $textd=$eventArray[$x][1] ;text of reminder if(FALSE=StringRegExp("^|",$textd)) Then $ddate=StringLeft($timed,8) ;yymmdd $dtime=StringRight($timed,4) ;hhmm $ts=StringLeft($dtime,2) & ":" & StringRight($dtime,2) ; hhmm -> hh:mm GUICtrlCreateListViewItem($x & "|" & $ddate & "|"& $ts & "|" & $textd, $listview); EndIf Next ;GUICtrlSetResizing($listview, $GUI_DOCKALL) GUISetState(@SW_SHOW) EndFunc Thanks in advance Joe joec_49@hotmail.com Link to comment Share on other sites More sharing options...
enaiman Posted July 4, 2008 Share Posted July 4, 2008 Help file quote:_GUICtrlListView_GetItemSelected --------------------------------------------------------------------------------Determines whether the item is selected#Include <GuiListView.au3>_GUICtrlListView_GetItemSelected($hWnd, $iIndex)Parameters$hWnd Handle to the control $iIndex Zero based index of the item Return ValueSuccess: TrueFailure: False SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :) Link to comment Share on other sites More sharing options...
GaryFrost Posted July 4, 2008 Share Posted July 4, 2008 GUICtrlListView_GetSelectedIndices SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Joec49 Posted July 4, 2008 Author Share Posted July 4, 2008 GUICtrlListView_GetSelectedIndicesThanks - works great! But how do I then get the selected text:func theview_select() $aItem1=_GUICtrlListView_GetSelectedIndices($listview,False); gives me what item# is selected if($aItem1 = "") Then msgBox(64,"ZIP","nothing selected") else ;gives me row/item# in 0-based origin $text=_GUICtrlListView_GetItemText($listview,$aItem1,-1) Msgbox(64,"viewselect aItem","Value:" & $aItem1 & ";" & $text) endifEndFuncThe $text variable is always blank?? Link to comment Share on other sites More sharing options...
rasim Posted July 5, 2008 Share Posted July 5, 2008 Try so: $text = _GUICtrlListView_GetItemText($listview,$aItem1) Link to comment Share on other sites More sharing options...
tlokz Posted July 5, 2008 Share Posted July 5, 2008 $aItem1 = _GUICtrlListView_GetItemText($listview, _GUICtrlListView_GetSelectedIndices($listview, False)) That should work also muttley Link to comment Share on other sites More sharing options...
GaryFrost Posted July 5, 2008 Share Posted July 5, 2008 Thanks - works great! But how do I then get the selected text: func theview_select() $aItem1=_GUICtrlListView_GetSelectedIndices($listview,False); gives me what item# is selected if($aItem1 = "") Then msgBox(64,"ZIP","nothing selected") else ;gives me row/item# in 0-based origin $text=_GUICtrlListView_GetItemText($listview,$aItem1,-1) Msgbox(64,"viewselect aItem","Value:" & $aItem1 & ";" & $text) endif EndFunc The $text variable is always blank?? If only 1 item is selected you'll have to cast it to an integer $text=_GUICtrlListView_GetItemText($listview,Int($aItem1),-1) SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
rasim Posted July 6, 2008 Share Posted July 6, 2008 GaryFrostIf only 1 item is selected you'll have to cast it to an integerSorry, but if the item is a string?I think his error in last parameter _GUICtrlListView_GetItemText($listview, $aItem1, -1). Should be use 0 instead of -1. Link to comment Share on other sites More sharing options...
GaryFrost Posted July 6, 2008 Share Posted July 6, 2008 GaryFrostSorry, but if the item is a string?I think his error in last parameter _GUICtrlListView_GetItemText($listview, $aItem1, -1). Should be use 0 instead of -1.Didn't catch the -1 but yes $aItem1 is a string. Check the help. SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
rasim Posted July 6, 2008 Share Posted July 6, 2008 GaryFrostWith all respects to you. Example from help:#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <GuiConstantsEx.au3> #include <GuiListView.au3> Opt('MustDeclareVars', 1) $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work _Main() Func _Main() Local $hListView GUICreate("ListView Get Item Text", 400, 300) $hListView = GUICtrlCreateListView("", 2, 2, 394, 268) GUISetState() ; Add columns _GUICtrlListView_AddColumn($hListView, "Items", 100) ; Add items _GUICtrlListView_AddItem($hListView, "Item 1") _GUICtrlListView_AddItem($hListView, "Item 2") _GUICtrlListView_AddItem($hListView, "Item 3") ; Set item 2 text _GUICtrlListView_SetItemText($hListView, 1, "New Item 2") MsgBox(4160, "With 0 param", "Item 2 Text: " & _GUICtrlListView_GetItemText($hListView, 1, 0)) ;last param = 0 MsgBox(4160, "With -1 param", "Item 2 Text: " & _GUICtrlListView_GetItemText($hListView, 1, -1)) ;last param = -1 ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>_Main Link to comment Share on other sites More sharing options...
GaryFrost Posted July 6, 2008 Share Posted July 6, 2008 GaryFrost With all respects to you. Example from help: #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <GuiConstantsEx.au3> #include <GuiListView.au3> Opt('MustDeclareVars', 1) $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work _Main() Func _Main() Local $hListView GUICreate("ListView Get Item Text", 400, 300) $hListView = GUICtrlCreateListView("", 2, 2, 394, 268) GUISetState() ; Add columns _GUICtrlListView_AddColumn($hListView, "Items", 100) ; Add items _GUICtrlListView_AddItem($hListView, "Item 1") _GUICtrlListView_AddItem($hListView, "Item 2") _GUICtrlListView_AddItem($hListView, "Item 3") ; Set item 2 text _GUICtrlListView_SetItemText($hListView, 1, "New Item 2") MsgBox(4160, "With 0 param", "Item 2 Text: " & _GUICtrlListView_GetItemText($hListView, 1, 0)) ;last param = 0 MsgBox(4160, "With -1 param", "Item 2 Text: " & _GUICtrlListView_GetItemText($hListView, 1, -1)) ;last param = -1 ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>_Main Wrong part of the help file, check what _GUICtrlListView_GetSelectedIndices($listview, False) returns. SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. 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