Saturation treeview lors de copie de node
J'ai 2 treeview. La première récupère ses données dans une table, ensuite, on peut faire passer des données de la première vers la deuxième. J'utilise pour cela une boucle for pour copier les items.
Voici un bout du code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
nnode:=treecust.Items.AddChild(nil,treefields.Selected.text);
for i := 0 to treefields.Selected.count - 1 do
begin
if(getindex(treefields.Selected.Item[i].text, nnode) < 0 ) then //
treecust.Items.AddChild(nnode,treefields.Selected.Item[i].Text);
application.ProcessMessages;
progressbar1.StepBy(1);
end;
function TFORM1.getindex(str: string; inode : ttreenode) : integer;
var
i:integer;
begin
result:= -1;
for i := 0 to inode.Count - 1 do
begin
if (Lowercase(inode.Item[i].Text)=lowercase(str)) then
result:=i
end;
end; |
Le soucis c'est que au delas d'une centaine d'enregistrement, le processeur est saturé, et cela mets beaucoup de temps à copier ... Quelqu'un aurait-il une autre méthode pour copier efficacement 2 nodes? Sachant que la node de destination n'est peut être pas vide, et ne dois pas avoir de doublons.
Merci d'avance.