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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.