Salut tous le monde j'ai réalisé une petite application qui fait un simple traitement, j'ai utilisé un thread pour que l'application ne reste pas figé mais le problème qui se pose c'est que la DBGrid durant le parcours des enregistrements de la table elle reste figé visuellement voila pour le code du thread
Alors comment fixer ce problème.
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 procedure thread1.Execute; var i:integer; code:string; begin form1.progressbar1.Position:=1; form1.progressbar1.Max:=form1.abstable1.RecordCount; form1.abstable1.First; while not form1.abstable1.Eof do begin form1.label1.Caption:='Traitement en cours ...'; form1.label1.Update; form1.progressbar1.Position:=form1.progressbar1.Position+1; for i:=1 to 31 do begin code:=form1.abstable1['Jour_'+inttostr(i)]; form1.absquery1.Close; form1.absquery1.SQL.Clear; form1.absquery1.SQL.Add('select * from table2 where code='+QuotedStr(code)); form1.absquery1.Open; form1.abstable1.Edit; if not form1.absquery1.IsEmpty then form1.abstable1['Jour_'+inttostr(i)]:=form1.absquery1['heure'] else form1.abstable1['Jour_'+inttostr(i)]:=code; form1.abstable1.Post; end; form1.abstable1.Next; end; form1.label1.Caption:='Traitement terminé'; form1.label1.Update; form1.workerthread.terminate; end;
Merci.
Partager