Jump to content

Show item from list


david1337
 Share

Recommended Posts

Hey guys

Quick question:

In this GUI the listview is created from items in test.txt

I would like my "Get Info" button to show the actual text of the item that is selected. So far I have been able to make it show the number of the item.

What is the last missing puzzle here?
 

#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
         $iIndex = _GUICtrlListView_GetSelectedIndices($cLV)
         msgbox (0, "Selected item", $iIndex)

        EndSwitch
    WEnd
EndFunc   ;==>Main

 

Link to comment
Share on other sites

Bill ! My new best friend :)

If I define the item number like this: _GUICtrlListView_GetItemText($cLV, 1)  Then it shows the text of item 1 correct.

And since _GUICtrlListView_GetSelectedIndices gets the item number of the selected item, I thought that I could do like this, but it doesn't work.
The 2nd msgbox is just blank.

 

Case $GetInfo
$iIndex = _GUICtrlListView_GetSelectedIndices($cLV)

$iIndexText = _GUICtrlListView_GetItemText($cLV, $iIndex)


msgbox (0, "Selected item NUMBER", $iIndex)
msgbox (0, "Selected item TEXT", $iIndexText)

 

Edited by david1337
Link to comment
Share on other sites

31 minutes ago, david1337 said:

Bill ! My new best friend :)

 

o:)

Try the Array Based Parameter:

Case $GetInfo
         $iIndex = _GUICtrlListView_GetSelectedIndices($cLV, True)
        $iIndexText = _GUICtrlListView_GetItemText($cLV, $iIndex[1])

 

Link to comment
Share on other sites

Omg I can't believe this fix I just made up :D

Case $GetInfo
         $iIndex = _GUICtrlListView_GetSelectedIndices($cLV)
         $iIndexNumber = $iIndex -""
         $iIndexText = _GUICtrlListView_GetItemText($cLV, $iIndexNumber)


         msgbox (0, "Selected item NUMBER", $iIndex)
         msgbox (0, "Selected item TEXT", $iIndexText)

 

Link to comment
Share on other sites

39 minutes ago, david1337 said:

Oh, I didn't see your fix - that works great too, and somehow seems prettier :D

Well yours works for now but when you start adding code and intricacies it may cause problems down the road.

Link to comment
Share on other sites

For instance if you were using the Default Version of _GUICtrlListView_Create you could call your case with the following:

$LVS_EX_ONECLICKACTIVATE - The control sends an $LVN_ITEMACTIVATE messages when the user clicks an item

 

Melbas probably has something similar better ;-)

Link to comment
Share on other sites

  • Moderators

david1337,

Someone called?

This seems to work nicely:

Case $GetInfo
    $aIndex = _GUICtrlListView_GetSelectedIndices($cLV, True)
    If IsArray($aIndex) And $aIndex[0] <> 0 Then
        MsgBox(0, "Selected item", _GUICtrlListView_GetItemText( $cLV, $aIndex[1]))
    EndIf

And as you are checking that there is at least one item selected, you do not get a crash when one is not.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

david1337,

Nice thought - but as has just been proved, I normally turn up fairly quickly in any event!

M23

Edited by Melba23
Typo

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...