关于treeview的使用问题 (50分)

  • 主题发起人 主题发起人 sillyscar
  • 开始时间 开始时间
S

sillyscar

Unregistered / Unconfirmed
GUEST, unregistred user!
第一次使用treeview,发现好麻烦,希望能找个能上手的例子
例:比如我生成一个form,左边放treeview,右边放一个pagecontrol,我现在想点左边的treeview
的一个结点,然后右边的pagecontrol的一个tabsheet生成一个dbgrid,显示一个数据库的一个表
所有的记录,如果再点一个结点,右边的tabsheet再生成一个QReport,该怎么实现,请哪位高手指点.
另外,treeview的每个结点好象不能被单独选中编辑?
说明:由于刚到富翁论坛,所以只有200分的可用积分,现在我只能给50分了,希望各位不要
嫌少,知识最重要嘛,以后有分了给大家多送多送。
 
第一个tabsheet1是显示一个表里所有的记录
第二个tabsheet2是显示一个报表qreport1,
请哪位大虾指点,在线等待!!!
 
可以根据treeview的selected.level,selected.index,selected.text来定位
你所选择的结点,也就可以在里面写你的代码了!
 
//你选中的节点是TTreeNode类型,它有
Level:即选中节点层次,最上层为0,下一层为1,....
Caption:标题
等属性,
你可以根据这些属性来操作
procedure TForm1.Button1Click(Sender: TObject);
var
l_Node : TTreeNode;
begin
l_Node := TreeView1.Selected;
if l_Node = nil then
Exit;
if l_Node.Text = '报表' then
PageControl1.ActivePageIndex := 0
else
if l_Node.Text = '记录' then
PageControl1.ActivePageIndex := 1;
end;
 
呵呵,看来这个问题问的面太大了,说简单一点吧
我现在一张表,表里有一个字段A做为主键,但是我动态生成树的时候不是用这个主键A做treenode
的text,而是用另一个字段B做text.如果现在有B是重名的,而我只要用dbgrid显示我需要的一个B的
唯一记录,请问该如何做?
 
虽然不显示A,但还要在适当的地方保存它的值。
不嫌难看的话,可以把A放在B后面,用括号括起来,
搜索起来也方便。
 
这样不好吧,是不是应该用个二维树组或是一个指针?
 
据说有个tag属性可以保存数据,不知道应该怎么用,没人知道吗?
 
TreeView1.items.AddObject(Node: TTreeNode; const S: string; Ptr: Pointer)
TreeView1.items.AddChildObject(Node: TTreeNode; const S: string; Ptr: Pointer)
 
既然是pointer,那point怎么指到表table里面的记录呢?有没有例子,请给我发一个
 
给我你的mail,我给你发个详细的例子过去.或者是你到
http://go7.163.com/luyear/delphi.htm去下载我写的一个例子,有源码.
 
[blue]sword_liu[/blue]
网页打不开,请发给我:
chinakama1974@21cn.com
 
我的mail是: sillyscar@sina.com.cn
请sword_liu给我发一份,多谢.
 
哥:也给俺发一份吧多谢谢。hateqing@163.com
 
楼上两位,我发了。
 
我收到的是乱码,能否在此贴出源文件?谢谢
 
接受答案了.
 
后退
顶部