erich.wanker Posted March 20, 2015 Posted March 20, 2015 Hello in a Treeview - i have 3 Nodes with childs .. the Node-values are from 3 dbTables (node1,node2 and node3 are "captions" of the Table-names) the child-"objects" are db-records i allways get errors if i click a node.. How can i open the right table and record if a user clicks on a object? .. ( i have no TAG-Value to store the unique Integer of a record to a child objekt - just the string value ?) how can i update a Node - if a new record is stored - or should i clear all items and write everything new? ThanX for informations uses ..... uniTreeView, vcl.ComCtrls; private SelectedNode : TUniTreeNode; create Nodes:var mynode :TuniTreeNode; begin mynode := TUniTreeNode.Create; UniTreeView1.Items.Clear; mynode := UniTreeView1.Items.AddNode(nil,nil, 'Mainnode1', Pointer(0), naAddFirst); UniTreeView1.Items.AddChild(mynode, 'Object1'); UniTreeView1.Items.AddChild(mynode, 'Object2'); UniTreeView1.Items.AddChild(mynode, 'Object3'); mynode := UniTreeView1.Items.AddNode(nil,nil, 'Mainnode2', Pointer(0), naAddFirst); UniTreeView1.Items.AddChild(mynode, 'Object1'); UniTreeView1.Items.AddChild(mynode, 'Object2'); UniTreeView1.Items.AddChild(mynode, 'Object3'); mynode := UniTreeView1.Items.AddNode(nil,nil, 'Mainnode3', Pointer(0), naAddFirst); UniTreeView1.Items.AddChild(mynode, 'Object1'); UniTreeView1.Items.AddChild(mynode, 'Object2'); UniTreeView1.Items.AddChild(mynode, 'Object3'); end; procedure TUniFrame7.UniTreeView1Change(Sender: TObject; Node: TUniTreeNode); begin SelectedNode:=Node; end; procedure TUniFrame7.UniTreeView1Click(Sender: TObject); begin showmessage(SelectedNode.Text +' ... '+ SelectedNode.Parent.Text); ---> ERROR end; Quote
Administrators Farshad Mohajeri Posted March 20, 2015 Administrators Posted March 20, 2015 UniTreeView already has a property named Selected. Please use it instead. Quote
erich.wanker Posted March 20, 2015 Author Posted March 20, 2015 ThanX Farshad ..all right ... works.. :-) But a small additional question: UniTreeView1.FullExpand; -> doesn´t work ? AND How can i save a unique number to a child .. i am searchin something like: current_node:=UniTreeView1.Items.AddChild(mynode, 'Object1'); current_node.ImageIndex:=-1; current_node.tag := unique_db_recordnumber; also for reading the value: procedure TUniFrame7.UniTreeView1Click(Sender: TObject); begin SelectedNode:=UniTreeView1.Selected; if (SelectedNode <> nil) AND (SelectedNode.Level>0) then showmessage(SelectedNode.Text +' ... '+ SelectedNode.Parent.Text + 'RecordNr.:'+inttostr(SelectedNode.tag) ); end; Quote
Administrators Farshad Mohajeri Posted March 20, 2015 Administrators Posted March 20, 2015 UniTreeView1.FullExpand; -> doesn´t work ? Pls post a code sample. current_node.tag := unique_db_recordnumber; Node has property named Data. It is a pointer. You can cast it to hold an integer. Quote
Abaksoft Posted April 3, 2015 Posted April 3, 2015 Hellow Erich, For Data property see Topic #8 : http://forums.unigui.com/index.php?/topic/5054-tunitreewview/?hl=obj&do=findComment&comment=25818 Regards. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.