Bonjour,

je fais un fullexpand d'un treeview mais j'ai des problèmes de lenteur!
En effet, le fullexpand d'un vingtaine d'éléments (4 node level 1 et le reste level 2) mais +- 1 seconde à s'afficher ... ce que je trouve énorme quand je vois parfois certains treeview s'afficher à des vitesses très rapide!

A la place du fullexpand, j'ai essayé un expand du noed principal anvant de créer un nouveau mais le constat est toujours le même, c'est lent

J'utilise Delphi 2006 sur un Windows XP SP2 et je travaille en Win32

Exemple de mon 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
procedure TFrmMeubles.FillExAvalaible(oList: Variant);
var
  Crit : String;
  ExlCritNode, ExlValNode : TTreeNode;
  i : integer;
begin
 
  TrVwExAvalaible.AutoExpand := True;
  if oList.Count <= 0 then
  else
  begin
    {
      Ajout du premier élément sans passer dans la boucle
    }
    Crit := oList.ItemList(1).item(1);
    TrVwExAvalaible.Items.AddFirst(nil,Crit);
    ExlCritNode := TrVwExAvalaible.Items.GetFirstNode;
    ExlCritNode.Data := TNodeCritData.Create;
    TNodeCritData(ExlCritNode.Data).id := oList.ItemList(1).item(1);
    TNodeCritData(ExlCritNode.Data).tpe := oList.ItemList(1).item(2);
    for I := 1 to oList.Count do
    begin
 
      if CompareText(Crit,oList.ItemList(i).item(1)) = 0 then
      else
      begin
        crit := oList.ItemList(i).item(1);
        ExlCritNode.Expand(True);
        ExlCritNode := TrVwExAvalaible.Items.Add(ExlCritNode,Crit + ' - ' + oList.ItemList(i).item(2));
        ExlCritNode.Data := TNodeCritData.Create;
        TNodeCritData(ExlCritNode.Data).id := oList.ItemList(i).item(1);
        TNodeCritData(ExlCritNode.Data).tpe := oList.ItemList(i).item(2);
      end;
      ExlValNode := TrVwExAvalaible.Items.AddChild(ExlCritNode,oList.ItemList(i).item(3)
                                 + ' - ' + oList.ItemList(i).item(4) + ' - ' + oList.ItemList(i).item(5));
      ExlValNode.Data := TNodeValData.Create;
      TNodeValData(ExlValNode.Data).Val := oList.ItemList(i).item(3);
    end;
    ExlCritNode.Expand(True);    
    //TrVwExAvalaible.FullExpand;
  end;