写个小程序 娱乐一下procedure TForm1.Button1Click(Sender: TObject); //点击按钮 加载子节点数据 var NodeTest:TTreeNode; begin NodeTest:= TreeView1.Selected.getFirstChild; ListBox1.Items.Add(NodeTest.Text); AddNodeList(NodeTest); end;procedure TForm1.AddNodeList(NodeFirst:TTreeNode); //递归过程 begin if NodeFirst.getNextSibling<>nil then begin ListBox1.Items.Add(NodeFirst.Text); AddNodeList(NodeFirst.getNextSibling); end; end;
procedure TForm1.AddNodeList(NodeFirst:TTreeNode); begin if NodeFirst.getNextSibling<>nil then begin ListBox1.Items.Add(NodeFirst.getNextSibling.Text); //这写错了点 我太马虎了 哈哈 AddNodeList(NodeFirst.getNextSibling); end; end;
你随便改下不就可以了? 这还要我来改? 数据显示位置 参考Listview用法procedure TForm1.Button1Click(Sender: TObject); var NodeTest:TTreeNode; begin NodeTest:= TreeView1.Selected.getFirstChild; with ListView1.Items.Add do //(NodeTest.Text); begin caption:=NodeTest.Text;//'1212'; end; AddNodeList(NodeTest); end;procedure TForm1.AddNodeList(NodeFirst:TTreeNode); begin if NodeFirst.getNextSibling<>nil then begin // ListView1.Items.Add(NodeFirst.getNextSibling.Text); with ListView1.Items.Add do //(NodeTest.Text); begin caption:=NodeFirst.getNextSibling.Text;//'1212'; end; AddNodeList(NodeFirst.getNextSibling); end; end;
ListView用法://增加项或列(字段)ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Items[0].Caption:='id'; ListView1.Columns.Items[1].Caption:='type'; ListView1.Columns.Items[2].Caption:='title'; ListView1.Columns.Items[2].Width:=300; Listview1.ViewStyle:=vsreport; Listview1.GridLines:=true; //注:此处代码也可以直接在可视化编辑器中完成,也可写成以下这样begin with listview1 do begin Columns.Add; Columns.Add; Columns.Add; ViewStyle:=vsreport; GridLines:=true; columns.items[0].caption:='进程名'; columns.items[1].caption:='进程ID'; columns.items[2].caption:='进程文件路径'; Columns.Items[0].Width:=100; Columns.Items[1].Width:=100; Columns.Items[2].Width:=150; end end; //增加记录 with listview1.items.add do begin caption:='1212'; subitems.add('hh1'); subitems.add('hh2'); end; //删除 listview1.items.delete(0);
GetNext//得到下一个子节点
var
NodeTest:TTreeNode;
begin
NodeTest:= TreeView1.Selected.getFirstChild;
ListBox1.Items.Add(NodeTest.Text);
AddNodeList(NodeTest);
end;procedure TForm1.AddNodeList(NodeFirst:TTreeNode); //递归过程
begin
if NodeFirst.getNextSibling<>nil then
begin
ListBox1.Items.Add(NodeFirst.Text);
AddNodeList(NodeFirst.getNextSibling);
end;
end;
procedure TForm1.AddNodeList(NodeFirst:TTreeNode);
begin
if NodeFirst.getNextSibling<>nil then
begin
ListBox1.Items.Add(NodeFirst.getNextSibling.Text); //这写错了点 我太马虎了 哈哈
AddNodeList(NodeFirst.getNextSibling);
end;
end;
var
NodeTest:TTreeNode;
begin
NodeTest:= TreeView1.Selected.getFirstChild;
with ListView1.Items.Add do //(NodeTest.Text);
begin
caption:=NodeTest.Text;//'1212';
end;
AddNodeList(NodeTest);
end;procedure TForm1.AddNodeList(NodeFirst:TTreeNode);
begin
if NodeFirst.getNextSibling<>nil then
begin
// ListView1.Items.Add(NodeFirst.getNextSibling.Text);
with ListView1.Items.Add do //(NodeTest.Text);
begin
caption:=NodeFirst.getNextSibling.Text;//'1212';
end;
AddNodeList(NodeFirst.getNextSibling);
end;
end;
ListView1.Columns.Clear;
ListView1.Columns.Add;
ListView1.Columns.Add;
ListView1.Columns.Add;
ListView1.Columns.Items[0].Caption:='id';
ListView1.Columns.Items[1].Caption:='type';
ListView1.Columns.Items[2].Caption:='title';
ListView1.Columns.Items[2].Width:=300;
Listview1.ViewStyle:=vsreport;
Listview1.GridLines:=true; //注:此处代码也可以直接在可视化编辑器中完成,也可写成以下这样begin
with listview1 do
begin
Columns.Add;
Columns.Add;
Columns.Add;
ViewStyle:=vsreport;
GridLines:=true;
columns.items[0].caption:='进程名';
columns.items[1].caption:='进程ID';
columns.items[2].caption:='进程文件路径';
Columns.Items[0].Width:=100;
Columns.Items[1].Width:=100;
Columns.Items[2].Width:=150;
end
end; //增加记录
with listview1.items.add do
begin
caption:='1212';
subitems.add('hh1');
subitems.add('hh2');
end; //删除
listview1.items.delete(0);
windows资源管理器的所有功能在DELPHI上都可以实现,而且很简单。