ええ、私はたくさんの質問を投稿していることを知っていますが、それは私がそれを正しく行っていること、私が間違っていること、または私が完全に無知であり、ドキュメントに何も見つからないことを保証する必要があるためです。いずれかの方法、
重複ノードをチェックしようとしています。これが私がそれをしたい方法です:
ノードをループして、各ノードのテキスト(レコード)を比較しますが、ノードが多い場合は、時間とメモリを消費しすぎませんか?これにはもっと良いアプローチがありますか?
ありがとう!-ジェフ。
編集: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;
私は自分のコードを共有することを恐れていません。それはコミュニティのおかげです。:)