procedure TMain_Form.dxDBTreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
pt:Tpoint;
tnode:TTreeNode;
DBTreeNode:TdxDBTreeNodes;
nodeid:integer;
p:Pnodedata;
begin
GetCursorPos(pt);
pt:=dxDBTreeView1.ScreenToClient(pt);
tnode:=TTreeView(dxDBTreeView1).GetNodeAt(pt.X,pt.Y);
if tnode<>nil then
begin
if button=mbleft then
begin
nodeid:=DBTreeNode.GetKeyFieldValue(tnode) ;
//showmessage(inttostr(nodeid));
new(p) ;
p.nodeId:=nodeid;
if mylist.IndexOf(p)<0 then
nCur:=mylist.Add(p) ;
//showmessage(inttostr(nCur));
end ;
end;
end;
procedure TMain_Form.ToolButton4Click(Sender: TObject);
var
p:pnodedata;
nodeid:integer;
DbTreeNodes:TdxDBTreeNodes;
DbTreeNode:TdxDBTreeNode;
tnode:TTreeNode;
begin
if nCur>0 then
nCur:=nCur-1
else
nCur:=0;
p:=mylist.Items[nCur];
nodeid:=p.nodeId;
//showmessage(inttostr(nodeid)
//showmessage(DbTreeNodes.GetDBTreeNode('1').text);
DbTreeNode:=DbTreeNodes.GetDBTreeNode(nodeid);//这里出错if DbTreeNode<>nil then
begin
DbTreeNode.Selected;
DbTreeNode.Focused;
end;
end;其中nodeid是树中keyfileds的值,现存到Tlist的一个变量中
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
pt:Tpoint;
tnode:TTreeNode;
DBTreeNode:TdxDBTreeNodes;
nodeid:integer;
p:Pnodedata;
begin
GetCursorPos(pt);
pt:=dxDBTreeView1.ScreenToClient(pt);
tnode:=TTreeView(dxDBTreeView1).GetNodeAt(pt.X,pt.Y);
if tnode<>nil then
begin
if button=mbleft then
begin
nodeid:=DBTreeNode.GetKeyFieldValue(tnode) ;
//showmessage(inttostr(nodeid));
new(p) ;
p.nodeId:=nodeid;
if mylist.IndexOf(p)<0 then
nCur:=mylist.Add(p) ;
//showmessage(inttostr(nCur));
end ;
end;
end;
procedure TMain_Form.ToolButton4Click(Sender: TObject);
var
p:pnodedata;
nodeid:integer;
DbTreeNodes:TdxDBTreeNodes;
DbTreeNode:TdxDBTreeNode;
tnode:TTreeNode;
begin
if nCur>0 then
nCur:=nCur-1
else
nCur:=0;
p:=mylist.Items[nCur];
nodeid:=p.nodeId;
//showmessage(inttostr(nodeid)
//showmessage(DbTreeNodes.GetDBTreeNode('1').text);
DbTreeNode:=DbTreeNodes.GetDBTreeNode(nodeid);//这里出错if DbTreeNode<>nil then
begin
DbTreeNode.Selected;
DbTreeNode.Focused;
end;
end;其中nodeid是树中keyfileds的值,现存到Tlist的一个变量中
DbTreeNodes:TdxDBTreeNodes;//这句注释掉DbTreeNode:=DbTreeNodes.GetDBTreeNode(nodeid);//这里出错
改为
DbTreeNode:=dxTreeview.dbTreeNodes.GetDBTreeNode(nodeid)