Ttreeview的創建和自動展開
應該是Ttreenode的展開:
AddChildToTreeView(nil);//增加樹頂節點
AddChildToTreeView(trvUnitTree.TopItem);//為頂節點增加孩子
trvUnitTree.TopItem.Expand(true);//從頂節點自動展開
AddChildToTreeView的樹創建過程:
procedure AddChildToTreeView(aParentNode: TTreeNode);
var
aNode: TTreeNode;
begin
if aParentNode = nil then
begin
//初始化樹
trvUnitTree.Items.Clear;
trvUnitTree.OnChange := trvUnitTreeChange;
Application.ProcessMessages;
end;
//加載節點的孩子節點
if aParentNode <> nil then aParentNode.DeleteChildren;
if DBAccess.DoProcess('TUnitInfo', 'GetChildNode', GetTheNodeCode(aParentNode)) = -1 then
begin
HWShowMessage('獲取數據失敗!');
exit;
end;
with DBAccess.ResultDataSet do
begin
First;
while not Eof do
begin
aNode := trvUnitTree.Items.AddChild(aParentNode, FieldByName('unitname').AsString);//數據庫表中必須要有父子關系
trvUnitTree.SetNodeData(aNode, FieldByName('unitnum').AsString);
Next;
end;
end;
end;
AddChildToTreeView(nil);//增加樹頂節點
AddChildToTreeView(trvUnitTree.TopItem);//為頂節點增加孩子
trvUnitTree.TopItem.Expand(true);//從頂節點自動展開
AddChildToTreeView的樹創建過程:
procedure AddChildToTreeView(aParentNode: TTreeNode);
var
aNode: TTreeNode;
begin
if aParentNode = nil then
begin
//初始化樹
trvUnitTree.Items.Clear;
trvUnitTree.OnChange := trvUnitTreeChange;
Application.ProcessMessages;
end;
//加載節點的孩子節點
if aParentNode <> nil then aParentNode.DeleteChildren;
if DBAccess.DoProcess('TUnitInfo', 'GetChildNode', GetTheNodeCode(aParentNode)) = -1 then
begin
HWShowMessage('獲取數據失敗!');
exit;
end;
with DBAccess.ResultDataSet do
begin
First;
while not Eof do
begin
aNode := trvUnitTree.Items.AddChild(aParentNode, FieldByName('unitname').AsString);//數據庫表中必須要有父子關系
trvUnitTree.SetNodeData(aNode, FieldByName('unitnum').AsString);
Next;
end;
end;
end;
posted on 2006-02-24 11:17 Java Fly 閱讀(953) 評論(0) 編輯 收藏 所屬分類: About Delphi