RE: treeview bug

new topic     » topic index » view thread      » older message » newer message

-----Original Message-----
From: Tone Skoda [mailto:tone.skoda at siol.net]

>if i create more items in treeview and then delete them all and
>again create two items it crashes. look at attached example.
>i tried to debug win32lib but it's hard.

I believe you've run into a bug I mentioned on this list several months ago.
You'll need to change deleteItem:

elsif window_type[ id ] = ListView then
    if pos = -1 then
        msg = LVM_DELETEALLITEMS

        iItem = 1

        while iItem <= length( lvitem_owner ) do
            if lvitem_owner[iItem] = id then
                removeLVItem( iItem )
                if iItem < length(lvitem_owner) then
                    iItem += 1
                end if
            else
                iItem += 1
            end if

        end while

    else

        LV_FINDINFO = struct_LVFINDINFO( LVFI_PARAM, "", pos, 0, 0, 0)

        iItem = sendMessage( id, LVM_FINDITEM, -1, LV_FINDINFO ) + 1

        release_mem(LV_FINDINFO)

        if not iItem then
            return 0
        end if

        msg = sendMessage( id, LVM_DELETEITEM, iItem-1, lParam )
        if msg then
            removeLVItem( pos )
        end if

        return msg

    elsif window_type[ id ] = TreeView then
        msg = TVM_DELETEITEM
        if pos = -1 then
            lParam = TVI_ROOT

            -- changed to only delete items in the treeview specified
            iItem = 1

            while iItem <= length( tvitem_owner ) do
                if tvitem_owner[iItem] = id then
                    removeTVItem( iItem )
                    if iItem < length(tvitem_owner) then
                        iItem += 1
                    end if
                else
                    iItem += 1
                end if

            end while
        else

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu