我添加了一个Treeview控件,现在我想动态创建它的结点及子结点,应该怎样做,应该在哪个事件里实现
解决方案 »
- MDI子窗体在pagecontrol上无法显示问题
- 用VC6开发的DLL,如何在delphi call Dll的里带类的function?
- 求"最小化窗体后,图标显示在任务栏右面"的源码
- 利用Socket传输文件时的求助,代码如下:
- 有人说我倒分.马上要死了.散掉所有分.(1)
- GetSelection()到底什么意思啊??怎么用??
- 我想把两个视频整和在一起有什么思路????
- 怎样在TREEVIEW控件中实现树状的多项选择!(在线等待)
- 我想做两浏览器同时运行,并且一个有代理服务器一个没有的,我在WIN2000,我觉得我办不到
- 紧急求救-- 关于Table的过滤问题
- delphi2007打开delphi创建的project的问题
- if pbmfHeader^.bfType <> WORD(('M' shl 8) | 'B') then result:= nil;
procedure TForm1.Button1Click(Sender: TObject);var
MyTreeNode1, MyTreeNode2: TTreeNode;
begin
with TreeView1.Items do
begin
Clear; { remove any existing nodes }
MyTreeNode1 := Add(nil, 'RootTreeNode1'); { Add a root node }
{ Add a child node to the node just added }
AddChild(MyTreeNode1,'ChildNode1'); {Add another root node}
MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2');
{Give MyTreeNode2 to a child }
AddChild(MyTreeNode2,'ChildNode2'); {Change MyTreeNode2 to ChildNode2 }
{ and add a child node to it}
MyTreeNode2 := TreeView1.Items[3];
AddChild(MyTreeNode2,'ChildNode2a'); {Add another child to ChildNode2, after ChildNode2a }
Add(MyTreeNode2,'ChildNode2b'); {add another root node}
Add(MyTreeNode1, 'RootTreeNode3');
end;end;
procedure Tfrm_YGQA_Initiate.FormCreate(Sender: TObject);
var
no_ygc, no_ygs: string;
ygjNode, ygcNode: TTreeNode; // 申明两个TreeNode变量
begin
if DM.AllUnits.Active then
DM.AllUnits.First()
else begin
DM.AllUnits.SQL.Text := 'select * from AllUnits order by NO_ZCDW';
DM.AllUnits.Open();
end; no_ygc := DM.AllUnits.FieldByName('NO_ZCDW').AsString;
ygjNode := tv_AllUnits.Items.AddFirst(nil, no_ygc + '[' + DM.AllUnits.FieldByName('Name_ZCDW').AsString + ']');
ygcNode := ygjNode; // 创建父节点 DM.AllUnits.Next();
while not DM.AllUnits.Eof do begin
no_ygs := DM.AllUnits.FieldByName('NO_ZCDW').AsString;
if Copy(no_ygs,1,4) = Copy(no_ygc,1,4) then // 同一个市州
tv_AllUnits.Items.AddChild(ygcNode, no_ygs + '[' + DM.AllUnits.FieldByName('Name_ZCDW').AsString + ']') // 创建子节点
else begin // 不同的市州
no_ygc := no_ygs;
ygcNode := tv_AllUnits.Items.AddChild(ygjNode, no_ygc + '[' + DM.AllUnits.FieldByName('Name_ZCDW').AsString + ']');
end;
DM.AllUnits.Next();
end;end;上述代码的功能是:创建省(地市)为父亲节点、县市为子节点的TreeView,只有两层。多层的思路相同,即用子节点再创建孙节点。
begin
TreeView1.Items.AddChildFirst(nil,'aa');
TreeView1.SetFocus;
end;procedure TForm1.btnAddChildClick(Sender: TObject);
begin
if TreeView1.Selected = nil then
btnRootClick(nil);
TreeView1.Items.AddChild(TreeView1.Selected, TreeView1.Selected.Text + '1');
end;