var lSelNode:TTreeNode; lSelText:String; begin lSelNode:=TreeView1.Selected; lSelText:=lSelNode.Text; end;
关键就是确定哪个node? 例treeview11.selected.text?
procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); var mynode:ttreenode; ponode:pNode; s,filename:string; ListItem: TListItem; begin if node.getFirstChild.Text='wait!'then begin treeview1.Items.BeginUpdate; treeview1.Items.Delete(node.getFirstChild); ///////////////////////////////////////////////////////////// // listview1.Items.Clear; if node is ttreenode then begin s:=inttostr(pnode(node.data)^.id); with adoquery1 do begin SQL.Clear; SQL.Add('select * from catalog where pid='+s); Open; first; if not node.HasChildren then while not eof do begin New(ponode); ponode^.id:=fieldbyname('id').AsInteger; ponode^.pid:=fieldbyname('pid').AsInteger; ponode^.suffix:=fieldbyname('suffix').Asstring; filename:=fieldbyname('subject').AsString+fieldbyname('suffix').AsString; mynode:=treeview1.Items.Addchildobject(node,trim(Fields.fieldbyname('subject').AsString),ponode); if fieldbyname('suffix').AsString='#Category' then begin mynode.ImageIndex:=3; mynode.SelectedIndex:=2; end; if fieldbyname('suffix').AsString='#Folder' then begin mynode.ImageIndex:=0; mynode.SelectedIndex:=1; end; if fieldbyname('children').AsInteger>0 then mynode:=treeview1.Items.AddChild(mynode,'wait!'); //加临时接点 //什么时候加,什么时候不加? //需要一个判断,按照TIER可能比较好 next; end ; end; end; treeview1.Items.EndUpdate; adoquery1.Close; end; end;
lSelNode:TTreeNode;
lSelText:String;
begin
lSelNode:=TreeView1.Selected;
lSelText:=lSelNode.Text;
end;
例treeview11.selected.text?
var AllowExpansion: Boolean);
var mynode:ttreenode;
ponode:pNode;
s,filename:string;
ListItem: TListItem;
begin
if node.getFirstChild.Text='wait!'then begin treeview1.Items.BeginUpdate;
treeview1.Items.Delete(node.getFirstChild);
/////////////////////////////////////////////////////////////
// listview1.Items.Clear; if node is ttreenode then
begin
s:=inttostr(pnode(node.data)^.id); with adoquery1 do
begin
SQL.Clear;
SQL.Add('select * from catalog where pid='+s);
Open;
first; if not node.HasChildren then while not eof do
begin
New(ponode);
ponode^.id:=fieldbyname('id').AsInteger;
ponode^.pid:=fieldbyname('pid').AsInteger;
ponode^.suffix:=fieldbyname('suffix').Asstring;
filename:=fieldbyname('subject').AsString+fieldbyname('suffix').AsString;
mynode:=treeview1.Items.Addchildobject(node,trim(Fields.fieldbyname('subject').AsString),ponode); if fieldbyname('suffix').AsString='#Category' then
begin
mynode.ImageIndex:=3;
mynode.SelectedIndex:=2; end;
if fieldbyname('suffix').AsString='#Folder' then
begin
mynode.ImageIndex:=0;
mynode.SelectedIndex:=1; end; if fieldbyname('children').AsInteger>0 then mynode:=treeview1.Items.AddChild(mynode,'wait!'); //加临时接点
//什么时候加,什么时候不加?
//需要一个判断,按照TIER可能比较好 next;
end ;
end; end; treeview1.Items.EndUpdate;
adoquery1.Close;
end;
end;