var node:ttreenode; begin node:=treeview1.Items.Add(nil,'根节点名字'); treeview1.Items.Add(node,'子节点名字'); end; treeview1.Selected.Delete;//删除被选择节点
谢谢 能否再多说点常用的基本属性 方法啊 书上都不说 晕死了:(treeview1.Items.Add(node,Edit1.Text);编译出错: [Error] Unit4.pas(44): Undeclared identifier: 'node' [Fatal Error] Project1.dpr(9): Could not compile used unit 'Unit4.pas'
begin
node:=treeview1.Items.Add(nil,'根节点名字');
treeview1.Items.Add(node,'子节点名字');
end;
treeview1.Selected.Delete;//删除被选择节点
[Error] Unit4.pas(44): Undeclared identifier: 'node'
[Fatal Error] Project1.dpr(9): Could not compile used unit 'Unit4.pas'
仓库甲A
仓库甲B
仓库甲C
var node:ttreenode;
begin
node:=treeview1.Selected;
treeview1.Items.Add(node,'子节点名字');
end;如果选中 仓库甲 然后添加,添加到与 仓库甲 同级别的Item 我想做的选中 仓库甲 添加 到与 仓库甲A 仓库甲B ... 一个级别的还有nil什么意思 多次看到
输入treeview.items.add相关的都是添加节点的
里面有多种不同的方法
你自己选择用 再有不明白的可以有针对地搜索一下就成了
但是由于目的是添加根结点 也就是说根结点的根节点应该设置为nil 这样的话你创建的节点就是根节点了
具体的使用你可以参考帮助 也可以搜索一些资料 因为我在家 明天我去单位可以给你一些比较好的例子你看一下就懂了
Classes, ComCtrls, ADODB, SysUtils;type
TNodeData = record
Index: integer;
Caption: string;
end;
PNodeData = ^TNodeData;
TTreeFill = class(TThread)
TV: TTreeView;
TableName: string;
FieldIndex: string;
FieldPID: string;
FieldCaption: string;
RootText: string;
Conn: TADOConnection;
Ptr: PNodeData;
constructor Create(ATreeView: TTreeView; AConn: TADOConnection;
ATable: string; ARootText: string = '我的目录';
AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
AFieldCaption: string = 'Caption');
private
procedure AddTree(Node: TTreeNode; PN: PNodeData);
protected
procedure Execute; override;
end;implementation
//------------------------------------------------------------------------------
constructor TTreeFill.Create(ATreeView: TTreeView; AConn: TADOConnection;
ATable: string; ARootText: string = '我的目录';
AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
AFieldCaption: string = 'Caption');
begin
FieldIndex := AFieldIndex;
FieldPID := AFieldPID;
FieldCaption := AFieldCaption;
TV := ATreeView;
TableName := ATable;
RootText := ARootText;
Conn := AConn;
New(Ptr);
inherited Create(False);
end;
//------------------------------------------------------------------------------
procedure TTreeFill.Execute;
var
Node: TTreeNode;
begin
FreeOnTerminate := True;
TV.Items.Clear;
Ptr^.Index := 0;
Ptr^.Caption := RootText;
Node := TV.Items.AddObject(nil, RootText, Ptr);
Node.ImageIndex := 0;
Node.SelectedIndex := 0;
AddTree(Node, Ptr);
TV.FullExpand;
end;
//------------------------------------------------------------------------------
procedure TTreeFill.AddTree(Node: TTreeNode; PN: PNodeData);
var Query: TADOQuery;
nNode: TTreeNode;
PNode: PNodeData;
begin
try
Query := TADOQuery.Create(nil);
Query.Connection := Conn;
Query.SQL.Text := 'Select * from ' + TableName + ' where ' + FieldPID + ' =' + IntToStr(PN^.Index);
if Query.Active then
Query.Close;
Query.Open;
while Query.Eof = False do
begin
New(PNode);
PNode^.Caption := Query.FieldByName(FieldCaption).AsString;
PNode^.Index := Query.FieldByName(FieldIndex).AsInteger;
nNode := TV.Items.AddChildObject(Node, PNode^.Caption, PNode);
nNode.ImageIndex := 1;
nNode.SelectedIndex := 2;
AddTree(nNode, PNode);
Query.Next;
end;
finally
Query.Free;
end;
end;
//------------------------------------------------------------------------------
end.
仓库甲A
仓库甲B
仓库甲C
var node:ttreenode;
begin
node:=treeview1.Selected;
treeview1.Items.Add(node,'子节点名字');
end;如果选中 仓库甲 然后添加,添加到与 仓库甲 同级别的Item 我想做的选中 仓库甲 添加 到与 仓库甲A 仓库甲B ... 一个级别的还有nil什么意思 多次看到
TNodeData = record
Index: integer;
Caption: string;
end;
PNodeData = ^TNodeData; //写在这里对么?总是提示 unexpected token:PNodeData