首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

treeview路径,该怎么处理

2012-03-08 
treeview路径procedureTF_yxszk.FormCreate(Sender:TObject)vari,Rec_Num:integerNode1,Node2:TTreeNode

treeview路径
procedure   TF_yxszk.FormCreate(Sender:   TObject);
var
    i,Rec_Num:integer;
    Node1,Node2:TTreeNode;
begin
    TreeView1.Items.Clear;
    TreeView1.Items.BeginUpdate;
    Node1:=TreeView1.Items.GetFirstNode;
    with   adoquery1   do
        begin
            close;
            sql.Clear;
            sql.Add( 'select   *   from   tree   order   by   id ');
            open;
        end;
    If   ADOquery1.RecordCount> 0   Then
    Begin
        Rec_Num:=   ADOQuery1.RecordCount;
        For   i:=0   To   Rec_Num-1   Do
        begin
            If   ADOQuery1.FieldByName( 'pid ').Text= '0 '   Then
                Node2:=AddNode(TreeView1,Node1,ADOQuery1)
            Else
                begin
                    Node2:=SearchNode(TreeView1,ADOQuery1.FieldByName( 'pid ').Text);
                    If   Node2 <> nil   Then
                        AddNode(TreeView1,Node2,ADOQuery1);
                end;
                ADOQuery1.Next;
            end;
      End;


如得下列结果
机械----化工机械----搅拌机
电子----家用电器----电视机

我想实现点击化工机械时,   edit1显示     机械\化工机械
                点击搅拌机时,   edit1显示     机械\化工机械\搅拌机
总之想显示所有路径,怎么实现呀



[解决办法]
在TreeView的OnClick事件中:

procedure TForm1.TreeView1Click(Sender: TObject);
var
strPath: String;
pParentNode: TTreeNode;
begin
if TreeView1.Selected = nil then exit;
strPath := TreeView1.Selected.Text;
pParentNode := TreeView1.Selected.Parent;
while pParentNode <> nil do
begin
strPath := pParentNode.Text + '\ ' + strPath;
pParentNode := pParentNode.Parent;
end;
Edit1.Text := strPath;
end;

热点排行