错在哪里?如何能读取TreeView1节点标识号?
各大神你们好!
以下源码能从两个表中读出记录到TreeView1生成树形,但不知道如何能在OnChange事件中写代码获得节点的标识号(选中节点可获得表里ID),正确代码需要如何补充完整?请大神们出手相助,谢谢!!
=================================================================================
unit LOADTREE;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, ComCtrls, DB, ADODB, Unit2;
type
TLOADTREE = class(Tcomponent)
public
procedure LOADINGTREE(TreeView: TTreeView);
end;
implementation
procedure TLOADTREE.LOADINGTREE(TreeView: TTreeView);
var
RootNode:TTreenode;
curID,SubNodeName:string;
subnode,subnodechild:TTreenode;
begin
TreeView.Items.BeginUpdate;
TreeView.Items.Clear;
RootNode:= TreeView.Items.Add(nil, '全部');
RootNode.ImageIndex:=1;
with DataModule2.ADOQuery1 do
begin
DataModule2.ADOQuery1.close;
DataModule2.ADOQuery1.sql.Clear;
DataModule2.ADOQuery1.sql.Add('select * from [TB1] ');
DataModule2.ADOQuery1.open;
DataModule2.ADOQuery1.first;
while not DataModule2.ADOQuery1.Eof do
begin
curID:=trim(DataModule2.ADOQuery1.FieldByName('ID').AsString);
SubNodeName:=trim(DataModule2.ADOQuery1.FieldByName('NAME1').AsString);
subnodechild:=TreeView.items.addchild(rootnode,SubNodeName);
subnodechild.ImageIndex:=2;
DataModule2.ADOQuery2.close;
DataModule2.ADOQuery2.sql.Clear;
DataModule2.ADOQuery2.sql.Add('select * from FJB where FWID='''+DataModule2.ADOQuery1.FieldByName('ID').AsString+'''');
DataModule2.ADOQuery2.open;
DataModule2.ADOQuery2.first;
while not DataModule2.ADOQuery2.Eof do
begin
curID:=trim(DataModule2.ADOQuery2.FieldByName('ID').AsString);
SubNodeName:=trim(DataModule2.ADOQuery2.FieldByName('NAME2').AsString);
subnode:=TreeView.items.addchild(subnodechild,SubNodeName);
subnode.ImageIndex:=2;
DataModule2.ADOQuery2.Next;
end;
DataModule2.ADOQuery1.next;
end;
end;
TreeView.Items.EndUpdate;
end;
end.
=================================================================================