• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 409
  • Last Modified:

How to select an item of a tree view as default?

Hello.
        I have a virtual string tree component. In which I am creating some virtual node at run time. While loading the application I want to set the first item to be selected. Also I have another  virtual string tree component in the same view. This I am using as a grid view. I am loading some data  to the grid view according to the tree view selection. If the default item is selected then its corresponding data should be displayed in the grid view. I am using virtual tree view component from Softgems.
0
MAdhu
Asked:
MAdhu
  • 7
  • 7
1 Solution
 
mikelittlewoodCommented:
Download the demos for this components from softgems.
There are a couple of demos but look in the one with the folder  "Demos\Advanced" and run this demo.
Select the fourth demo option image along the top called "Hide and show nodes / Sync two trees".
This demo is exactly what you are looking for as it syncs a treeview and a grid view together.
0
 
2266180Commented:
you slect the first node with:

  virtualstringtree1.Selected[virtualstringtree1.GetFirst]:=true;

then, for filling the second tree view, you set the first treeviews onclick event nad in that event you access the selected node by
virtualstringtree1.GetFirstSelected
and fill in the treeview as you need
0
 
MAdhuAuthor Commented:
Ok Ciuly. its working fine. if we want to select a default level 2 node(one child item). Then, what to do?
I tried something like this. virtualstringtree1.Selected[virtualstringtree1.GetFirstVisibleChild(Node)]:=true;
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
mikelittlewoodCommented:
Do you want to select the default child node of the very first root node in the tree, or from any currently selected node?
0
 
mikelittlewoodCommented:
var
   currentNode: PVirtualNode;
begin
   currentNode := virtualstringtree1.focusedNode;
   virtualstringtree1.selected[ virtualstringtree1.getFirstVisibleChild( currentNode)] := true
0
 
MAdhuAuthor Commented:
yeah something like you told. Actually I have tree structure like below

NodeLevel1
          NodeLevel2
                  NodeLevel3
                  NodeLevel3
          NodeLevel2
                  NodeLevel3

I want to select first nodelevel3.
0
 
MAdhuAuthor Commented:
Its ok now. I did something like this

currentNode:= virtualstringtree1.GetFirst ;
   currentNode:= currentNode.FirstChild ;
    currentNode:= virtualstringtree1.GetFirstChild(currentNode);
    virtualstringtree1.Selected [pSelectedNode] := True ;
    virtualstringtree1.Focused ;
0
 
mikelittlewoodCommented:
I was going to give you something similar to this yes, but you don't need your very last line. That is just to retrieve the currently selected node.
0
 
MAdhuAuthor Commented:
Yes its true. But now the exact problem is GetText event of the second virtualstringtree2 is not triggering according to the selection made.
0
 
mikelittlewoodCommented:
In fact you could just repeat line 2 again to get the next child I would have though. Try to stick to one technique.

either:
   currentNode := virtualstringtree1.getFirst;
   currentNode := currentNode.firstChild;
   currentNode := currentNode.firstChild;
or:
   currentNode := virtualstringtree1.getFirst;
   currentNode := virtualstringtree1.getFirstChild( currentNode);
   currentNode := virtualstringtree1.getFirstChild( currentNode);
then finally
   virtualstringtree1.selected[ currentNode] := true;
0
 
MAdhuAuthor Commented:
But now the exact problem is GetText event of the second virtualstringtree2 is not triggering according to the selection made in virtualstringtree1.
0
 
MAdhuAuthor Commented:
Thanks.
0
 
mikelittlewoodCommented:
How are you selecting the item in the second tree in response to a change in the first tree?
Are you using the onChange event of the first tree?
Have you looked at the free demo that comes with the component on how to sync multiple trees?
0
 
MAdhuAuthor Commented:
yes by calling the onChange event of the first tree. Some issues are still there. But I can manage. Thanks
0
 
mikelittlewoodCommented:
Ok glad I could help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 7
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now