Deleting an Item 'remotely'...
BlitzPlus Forums/BlitzPlus Beginners Area/Deleting an Item 'remotely'...
| ||
| Hey Folks, Yeah me again! I am having some troubles again, here the thing: I need to delete an item from a ListBox without selecting it , from an other Panel without showing the current ListBox gadget where the item is. I can do that on Tree Views but I have no idea how to do that on a Listbox. The Problem is the Index stuff (RemoveGadgetItem gadget,index), I cannot know the index when I am creating an item and then I cannot store it somewhere to find it back later, so I am unable to do my stuff :/ Damn it ! Any help/idea is appreciate ! thank you. |
| ||
| I don't see WHY you can't know the index when you create it. I certainly know the indexes of the ones I create. But if you really can't, couldn't you just delete them all, and then recreate all but the one you need? |
| ||
| Hey, How do you do to know the index at the creation of an item ? I thought about deleting everything but the one I dont want anymore, but in this case, I can't do that... I would be glad to know how you do to know the index at the creation? Thanks !! :) |
| ||
Because the index always starts at zero. Just use a variable to keep track of the number of indexes or use CountGadgetItems.window = CreateWindow("test", 100, 100, 300, 500)
gad = CreateListBox(100, 100, 100, 100, window)
button = CreateButton("replace item", 100, 300, 100, 100, window)
For iter = 0 To 5
AddGadgetItem(gad, iter)
Next
;loop
Repeat
event = WaitEvent()
If event = $401 ;gadget action
Select EventSource()
;main buttons
Case button
item = Rnd(0, 5)
RemoveGadgetItem(gad, item)
AddGadgetItem(gad, 99)
End Select
EndIf
If event = $803 ;Close (X) box pressed
source = EventSource()
If source = window Then Exit
EndIf
ForeverAddGadgetItem always adds to the end of the list, and InsertGadgetItem inserts at the index you specify, so either way, you know the index... |
| ||
| Thank you very much ! :) |
| ||
| Hey.... I am still in trouble with my code :( It seems the index for the Treeview is different because I checked and from one node to an other the numbers arent following: 126571256 126571576 ... What's the hell :( All I need is a way to find the text of the node that I selected. See yaa. |
| ||
| Maybe you could assign each node to a type? Then you could have the name stored in that. And i think you have the handles to the nodes confused with the indexes. The indexes are different. If you have a list of nodes Node1 - index = 0 Node2 - index = 1 Node3 - index = 2 but the handles are different. The indexes are given to the nodes in the order they are listed and if Node2 was deleted the Node3 would have index 1. |
| ||
| Right !!!! I see my mistake now ! Yeah the used of types sound good, but how can I retrieve a 'node name' from a type by selecting a node in the tree view ? The only thing I can bring back from the tree view is the 'handles' But I will not be able to write the 'handles' to my types. right ? My treeviews are generated/populated from text files via an import button, we arent on the 'tab' where the treeviews are when we import. I don't see any commands in the treeview commands list that talk about Index ? and in the gadgets commands list, it's specified that the commands aren't to used with treeviews. :( Any suggestions ? |
| ||
If you have a type like
Type treeNode
Field nodeText
Field handle
End Type
You add the handle to the type as:
t\handle = AddTreeViewNode("Hello", root)
And then you can use a for each to cycle through until you find a type that matches the handle of the selected node. |
| ||
| Right ! Awesome !! I am so dumb... Thanks a lot !!! :) |