读书人

treeview路径,该怎么处理

发布时间: 2012-03-08 13:30:13 作者: rapoo

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;

读书人网 >.NET

热点推荐