是的,我知道我发布了很多问题,但那是因为我需要保证我做对了,我做错了什么,或者我完全一无所知,并且在文档中找不到任何东西。无论如何,
我正在尝试检查重复节点。这是我想做的事情:
遍历我的节点,并比较每个节点的文本(记录),但是如果我有很多节点,那会不会太耗时和消耗内存?会有更好的方法吗?
谢谢!- 杰夫。
编辑:感谢 Deltics,我得到了它的工作!如果我们有一些人有同样的问题,这里有一些工作代码,在 VST 中使用 2 级节点!
Procedure UncheckDuplicates;
Var
ParentNode,ChildNode : PVirtualNode;
I,J : Integer;
SL : TStringList;
SkypeID : String;
Begin
SL := TStringlist.Create;
try
ParentNode := frmMain.vtSkype.GetFirst;
for I := 0 to frmMain.vtSkype.RootNodeCount - 1 do
begin
ChildNode := ParentNode.FirstChild;
for J := 0 to ParentNode.ChildCount - 1 do
begin
if NodeIsChecked(ChildNode) then
begin
SkypeID := GetData(ChildNode).SkypeID;
if SL.IndexOf(SkypeID) <> -1 then
begin
ChildNode.CheckState := csUncheckedNormal;
end
else
begin
SL.Add(SkypeID);
end;
end;
ChildNode := ChildNode.NextSibling;
end;
ParentNode := ParentNode.NextSibling;
end;
finally
SL.Free;
end;
frmMain.vtSkype.Refresh;
End;
我不害怕分享我的代码,我欠社区的。:)