打开时默认情况是这样的,我想得到这样的效果,也就是默认显示时就显示tree的第二级菜单
http://www.jyhdyj.com/2222.gif代码如下
Function Tf_yxszk.AddNode(TreeView:TTreeview;Node:TTreeNode;ADOQ:TADOQuery):TTreeNode;
var
Node1:TTreeNode;
s:PString;
begin
Node1:=TreeView.Items.AddChild(Node,ADOQ.FieldByName('text').Text);
New(s);
s^:=ADOQ.FieldByName('id').Text;
Node1.Data:=s;
Result:=Node1;
end;Function Tf_yxszk.SearchNode(TreeView:TTreeView;Txts:String):TTreeNode;
var
i:integer;
s:PString;
begin
Result:=nil;
For i:=0 To TreeView.Items.Count-1 Do
begin
s:=TreeView.Items[i].Data;
If s^=Txts Then
begin
Result:=TreeView.Items[i];
Exit;
end;
end;
end;
procedure Tf_yxszk.Button1Click(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;
TreeView1.Items.EndUpdate;end;改哪呀
http://www.jyhdyj.com/2222.gif代码如下
Function Tf_yxszk.AddNode(TreeView:TTreeview;Node:TTreeNode;ADOQ:TADOQuery):TTreeNode;
var
Node1:TTreeNode;
s:PString;
begin
Node1:=TreeView.Items.AddChild(Node,ADOQ.FieldByName('text').Text);
New(s);
s^:=ADOQ.FieldByName('id').Text;
Node1.Data:=s;
Result:=Node1;
end;Function Tf_yxszk.SearchNode(TreeView:TTreeView;Txts:String):TTreeNode;
var
i:integer;
s:PString;
begin
Result:=nil;
For i:=0 To TreeView.Items.Count-1 Do
begin
s:=TreeView.Items[i].Data;
If s^=Txts Then
begin
Result:=TreeView.Items[i];
Exit;
end;
end;
end;
procedure Tf_yxszk.Button1Click(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;
TreeView1.Items.EndUpdate;end;改哪呀
var
boot:TTreeNode;
begin
boot:=self.TreeView1.Items[0];
boot.Expanded:=true;
end;
procedure TForm1.Button1Click(Sender: TObject); //展开按钮
begin
self.TreeView1.Items[0].Expanded:=true;
end;procedure TForm1.Button2Click(Sender: TObject); //收起按钮
begin
self.TreeView1.Items[0].Expanded:=false;
end;
boot:TTreeNode;
begin
boot:=TreeView1.topitem;
boot.Expanded:=true;
end;