Modify

Opened 6 years ago

Closed 6 years ago

#3736 closed Bug (Duplicate)

_GUICtrlTreeView_Sort fails when there is just one item in TreeView

Reported by: Andy289 Owned by:
Milestone: Component: Standard UDFs
Version: 3.3.14.0 Severity: None
Keywords: Cc:

Description

I know that there is nothing to sort if you have just one item but a proper validation should be performed to avoid an array subscript dimension range exceeded error.

Func _GUICtrlTreeView_Sort($hWnd)
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)

    Local $iItemCount = _GUICtrlTreeView_GetCount($hWnd)    ; <------------- if $iItemCount = 1
    If $iItemCount Then
        Local $aTreeView[$iItemCount], $i = 0               ; <------------- this array has just an index
        ; get only A child at each level
        Local $hHandle = _GUICtrlTreeView_GetFirstItem($hWnd)
        $aTreeView[1] = $hHandle                            ; <------------- and this would fail
        $aTreeView[0] = 2
        __GUICtrlTreeView_SortGetFirstChild($hWnd, $hHandle, $aTreeView)
        ReDim $aTreeView[$aTreeView[0]]
        $aTreeView[0] = 0

        For $i = 0 To UBound($aTreeView) - 1
            _SendMessage($hWnd, $TVM_SORTCHILDREN, 0, $aTreeView[$i], 0, "wparam", "handle") ; Sort the items in root
        Next
    EndIf

EndFunc   ;==>_GUICtrlTreeView_Sort

Attachments (0)

Change History (1)

comment:1 by J-Paul Mesnage, 6 years ago

Resolution: Duplicate
Status: newclosed

Duplicate #3714

Modify Ticket

Action
as closed The ticket will remain with no owner.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.