Bonjour,

J’ai besoin d'afficher la fenêtre d'attente avec un progressbar pendant le calcul de la taille des fichiers. Mais si je l'affiche juste comme ça elle se fige. Donc j'ai créé le thread qui doit seulement afficher cette fenêtre et changer la valeur de son progressbar. Mais ça se fige quand même. S'il vous plait, est-ce que quelqu'un peut me dire qu'est-ce que ne va pas.

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
 
 TCalculTaille = class(TThread)
  private 
   tform: TFormEnCours;
  protected
  public
    procedure Execute; override;
   Constructor Create(form: TFormEnCours);
  end;
 
Constructor TCalculTaille.Create(form: TFormEnCours);
begin 
  tform := form;
  tform.spSkinGauge1.Value := 0;
  tform.Show;
  FreeOnTerminate := true;
  inherited Create(false);
end;
 
procedure TCalculTaille.Execute;
var
  iprogress: integer;
begin 
  iprogress := 0;
  while not terminated do
    begin
      if iprogress < 100 then
         iprogress := iprogress + 1
      else
         iprogress := 0;
      tform.Gauge1.Value := iprogress;
      sleep(50);
    end;
  tform.Close;
end;
//---------dans le module principale
th: TCalculTaille;
 
FormEnCours := TFormEnCours.Create(Self);
th := TCalculTaille.Create(FormEnCours);