Bonjour à tous,

Afin d'uniformiser facilement mes composants et également pour pouvoir modifier rapidement l'apparence ou les propriétés de certains composants, j'appel à l'ouverture de chacunes de mes fiches une procédure d'initialisation:

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
43
44
 
Procedure ModifStyleFiche(MaForm_ : TForm);
 
Var
   I : Integer;
   TempCmpn : TComponent;
 
Begin
     Try
        If MaForm_ = Nil Then Exit;
 
        MaForm_.Font.Size:=8;
        MaForm_.Color:=clWhite;
 
        For I:=1 To MaForm_.ComponentCount Do
        Begin
 
             If MaForm_.Components[I-1] is TAdvGlowButton Then       
             Begin
                  TempCmpn:=MaForm_.Components[I-1];
                  TAdvGlowButton(TempCmpn).SetComponentStyle(tsOffice2013White);
                  TAdvGlowButton(TempCmpn).Appearance.BorderColor:=clBlack;
                  TAdvGlowButton(TempCmpn).Appearance.BorderColorChecked:=$00FAFAFA;
                  TAdvGlowButton(TempCmpn).Appearance.BorderColorDisabled:=clBlack;
                  TAdvGlowButton(TempCmpn).Appearance.BorderColorDown:=clActiveCaption;
					//...
             End;
 
             If MaForm_.Components[I-1] is TAdvStringGrid Then
             Begin
                  TempCmpn:=MaForm_.Components[I-1];
                  TAdvStringGrid(TempCmpn).Ctl3D:=False;
                  TAdvStringGrid(TempCmpn).FixedColor:=clWhite;
                  TAdvStringGrid(TempCmpn).FixedFont.Color:=clNavy;
                  TAdvStringGrid(TempCmpn).FixedFont.Style:=[];
                  TAdvStringGrid(TempCmpn).ControlLook.FixedGradientFrom:=clWhite;
                  TAdvStringGrid(TempCmpn).ControlLook.FixedGradientTo:=clWhite;
				  //...
             End;
			 //...
        End;
     Except
     End;
End;
Le problème c'est que forcément, sur certaines de mes fiches qui peuvent être assez volumineuse, l'ouverture est ralentie par cette fonction (3-4 secondes dans certains cas). existe-t-il un moyen plus efficace de gérer ce genre de chose?

Pour info, j'appelle cette procédure au moment du formcreate et non du formshow ce qui améliore déjà les performances mais ça n'est pas encore satisfaisant.

Merci d'avance pour vos conseils et vos idées.

LaNono