请各位帮忙: TestHit:=tvwMember.GetHitTestInfoAt(x,y); if (htOnItem in TestHit) or (htOnLabel in TestHit) then Begin SelNode:=tvwMember.Selected; NodeClickData:=tvwMember.Selected.Data; NodeIsSelected:=tvwMember.Selected.Selected; i:=tvwMember.Selected.Index; if NodeClickData.Mark='d' then Begin FirstChild:=selNode.GetNextChild(tvwMember.Selected); FirstChildIndex:=FirstChild.Index; //LastChild:=tvwMember.Selected.GetLastChild; //LastChildIndex:=LastChild.Index; LastChild:=SelNode.getNextSibling; LastChildIndex:=FirstChild.Index; For i:=FirstChildIndex to LastChildIndex do Begin tvwMember.Items.Item[i].Selected:=NodeIsSelected; end; end;我得到的FirstChildIndex and LastChildIndex都是3 end; end;
if (htOnItem in TestHit) or (htOnLabel in TestHit) then
Begin
SelNode:=tvwMember.Selected;
NodeClickData:=tvwMember.Selected.Data;
NodeIsSelected:=tvwMember.Selected.Selected;
i:=tvwMember.Selected.Index;
if NodeClickData.Mark='d' then
Begin
FirstChild:=selNode.GetNextChild(tvwMember.Selected);
FirstChildIndex:=FirstChild.Index;
//LastChild:=tvwMember.Selected.GetLastChild;
//LastChildIndex:=LastChild.Index;
LastChild:=SelNode.getNextSibling;
LastChildIndex:=FirstChild.Index;
For i:=FirstChildIndex to LastChildIndex do
Begin
tvwMember.Items.Item[i].Selected:=NodeIsSelected;
end;
end;我得到的FirstChildIndex and LastChildIndex都是3
end;
end;
唯一确定一个Node的是AbsoluteIndex。不信,你可以比较两个Node的内存是否是同一地址。
我用Node的AbsoluteIndex得到的值都是4,还是一样