[Gambas-user] How to search for an item in a treeview
M0E Lnx
m0e.lnx at ...626...
Fri Mar 28 18:20:36 CET 2008
I have managed to get the results from the search within the array
I did this by adding a line of code that stores each entry as it is
thrown into the treeview for the first time
I can retreive results by doing something like this
PUBLIC SUB RUN_SEARCH(sQuery as string)
DIM sListarr as string[]
DIM i as Integer
DIM sItem as string
DIM sResults as string
sListarr = SPLIT(sRawList, "@") ' sRawList is the massive string that
contains the treeview's entries separated by a "@"
FOR i = 0 to sListArr.Count - 1
sItem = sListarr[i]
IF Instr(sItem, sQuery, 1, gb.case) > 0 then
sResults = sResults & sItem & gb.newline ' will separate these by new lines
END IF
NEXT
END
This produces a string variable filled with hits from the search.
These hits are formatted like this
<parent>!<item>
<parent>!<item>
That is how they get added to the massive list in the first place
So now, out of that list, I need to create entries on the treeview
And of course this is where I'm running into trouble
A hit can be found on more than one parent
in which case, I need to add each parent (without double entries)
and populate each parent with whatever is after the "!"
Please help :(
On Fri, Mar 28, 2008 at 8:23 AM, M0E Lnx <m0e.lnx at ...626...> wrote:
> mmm.. I'm not sure what's what I want to do..
>
> I've done this before using a listview.. but the listview component I
> can understand more easily the problem is that it doesn't offer
> collapsable parent entries.
>
> that's why I'd rather wipe out the treeview, and repopulate it.
>
>
>
>
> On 3/28/08, Robert Rowe <robert.c.rowe at ...626...> wrote:
> > Why don't you add a second treeview that is initially hidden. As you
> > find your results add them to the hidden treeview. When the search
> > completes, show the hidden treeview and hide the original one.
> >
> >
> > Robert Rowe
> >
> >
> > M0E Lnx wrote:
> > > Sorry for not being too specifc.
> > >
> > > I'm trying to allow the user to search for specific items (initially
> > > listed in the treeview)
> > >
> > > so First, I want to populate the treeview with a massive collection
> > > (already done)
> > > Need to offer a search feature (this needs to find stuff in the
> > > treeview (you already did))
> > > Need to display ONLY the results of the search in the treeview.
> > >
> > > There will be a button that the user can hit to restore the treeview
> > > to the original content (full list)
> > >
> > >
> > >
> > > On 3/27/08, Stephen Bungay <sbungay at ...981...> wrote:
> > >
> > >> Yes, your original post did not ask for anything to be repopulated..
> > >> indeed, nothing has been removed from the treeview so you don;t have to
> > >> repopulate it using this method.
> > >> Could you be a little more clear on what it is you are trying to
> > >> accomplish? We have the find done.. whats with the repopulate?
> > >>
> > >>
> > >> M0E Lnx wrote:
> > >> > OK... I can see how that will find the hits... but I dont see how it
> > >> > will re-populate it using only the items that were found.
> > >> >
> > >> > I guess I must have misphrased that in the first place
> > >> >
> > >> >
> > >> > On 3/26/08, Stephen Bungay <sbungay at ...981...> wrote:
> > >> >> Ok try this. It is based on a save routine that I used in an
> > >> >> edutainment application I developed about a year ago... I pulled my hair
> > >> >> out trying to come up with a good recursive routine to do walk the tree,
> > >> >> and failed miserably at it. This treeview did not lend itself well to a
> > >> >> recursive walk through... but there is another SIMPLER way, Benoit
> > >> >> pointed me in the right direction (Thanks Benoit), and now lets pay it
> > >> >> forward.
> > >> >>
> > >> >> Create a test project with three controls on it. Don't rename the
> > >> >> controls, just use the default names. The controls to put on FMAIN are a
> > >> >> button, a treeview and a TextArea.
> > >> >> Now copy and paste this code into FMain
> > >> >>
> > >> >> PUBLIC Y AS String
> > >> >>
> > >> >> PUBLIC SUB Form_Open()
> > >> >>
> > >> >> WITH TreeView1
> > >> >> .Add("A", "Item A")
> > >> >> .Add("A1", "Item A1",, "A")
> > >> >> .Add("B", "Item B")
> > >> >> .Add("B1", "Item B1",, "B")
> > >> >> .Add("B1.1", "Item B1.1",, "B1")
> > >> >> .Add("C", "Item C")
> > >> >> .Add("D", "Item D")
> > >> >> .Add("D1", "Item D1",, "D")
> > >> >> .Add("E", "Item E")
> > >> >> END WITH
> > >> >>
> > >> >> END
> > >> >>
> > >> >> PUBLIC SUB Button1_Click()
> > >> >> WalkTree(TreeView1)
> > >> >> END
> > >> >>
> > >> >>
> > >> >> PRIVATE SUB WalkTree(pTreeView AS TreeView)
> > >> >> DIM sText AS String
> > >> >>
> > >> >> pTreeView.MoveFirst()
> > >> >>
> > >> >> REPEAT
> > >> >> sText = sText & pTreeView.Item.Key & ", " & "'" &
> > >> >> pTreeView.Item.Text & "'" & "\n"
> > >> >> pTreeView.Item.Expanded = TRUE
> > >> >> UNTIL pTreeView.MoveBelow()
> > >> >>
> > >> >> TextArea1.Text = sText
> > >> >>
> > >> >> END
> > >> >>
> > >> >>
> > >> >> When you push the button it will iterate down through the tree and
> > >> >> push the text of each node (and it's key) to a string, After the tree
> > >> >> has been 'walked' the string will be dumped to the Text area.
> > >> >> Use this to do a search on each ode as you come to it.
> > >> >> Job done.
> > >> >>
> > >> >> Steve.
> > >> >>
> > >> >>
> > >> >> M0E Lnx wrote:
> > >> >> > I have a treeview populated with lots of entries... I'm trying to
> > >> >> > provide a function that would search within the contents of that
> > >> >> > treeview for a specific string.
> > >> >> > Can anyone think of a way to do that?
> > >> >> >
> > >> >> > I've been trying the FIND method in the treeview, but it's quite
> > >> >> > different from other find methods...
> > >> >> >
> > >> >>
> > >> >>> -------------------------------------------------------------------------
> > >> >> > Check out the new SourceForge.net Marketplace.
> > >> >> > It's the best place to buy or sell services for
> > >> >> > just about anything Open Source.
> > >> >> > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > >> >> > _______________________________________________
> > >> >> > Gambas-user mailing list
> > >> >> > Gambas-user at lists.sourceforge.net
> > >> >> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >> >> >
> > >> >>
> > >> >>
> > >> >> -------------------------------------------------------------------------
> > >> >> Check out the new SourceForge.net Marketplace.
> > >> >> It's the best place to buy or sell services for
> > >> >> just about anything Open Source.
> > >> >> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > >> >> _______________________________________________
> > >> >> Gambas-user mailing list
> > >> >> Gambas-user at lists.sourceforge.net
> > >> >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >> >>
> > >> >
> > >> > -------------------------------------------------------------------------
> > >> > Check out the new SourceForge.net Marketplace.
> > >> > It's the best place to buy or sell services for
> > >> > just about anything Open Source.
> > >> > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > >> > _______________________________________________
> > >> > Gambas-user mailing list
> > >> > Gambas-user at lists.sourceforge.net
> > >> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >> >
> > >>
> > >>
> > >> -------------------------------------------------------------------------
> > >> Check out the new SourceForge.net Marketplace.
> > >> It's the best place to buy or sell services for
> > >> just about anything Open Source.
> > >> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > >> _______________________________________________
> > >> Gambas-user mailing list
> > >> Gambas-user at lists.sourceforge.net
> > >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >>
> > >>
> > >
> > > -------------------------------------------------------------------------
> > > Check out the new SourceForge.net Marketplace.
> > > It's the best place to buy or sell services for
> > > just about anything Open Source.
> > > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > > _______________________________________________
> > > Gambas-user mailing list
> > > Gambas-user at lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >
> > >
> >
> > -------------------------------------------------------------------------
> > Check out the new SourceForge.net Marketplace.
> > It's the best place to buy or sell services for
> > just about anything Open Source.
> > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
>
More information about the User
mailing list