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:
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.
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;
Merci d'avance.
Partager