Да, я знаю, что я публикую много вопросов, но это потому, что мне либо нужна уверенность в том, что я делаю это правильно, что я делаю неправильно, либо, если я совершенно не в курсе, и не могу найти ничего в документации.В любом случае,
Я пытаюсь проверить наличие дублирующих узлов.Вот как я бы хотел это сделать:
Зацикливать мои узлы и сравнивать текст (запись) каждого отдельного узла, но если бы я получил много узлов, разве это не было бы слишком много времени и памяти?Будет ли лучший подход для этого?
Спасибо!- Джефф.
РЕДАКТИРОВАТЬ: Благодаря Deltics, я получил это работает!Если у нас есть люди с таким же вопросом, вот рабочий код, использующий 2 уровня узлов в VST!
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;
Я не боюсь делиться своим кодом, я в долгу перед сообществом.:)