Ajouter un TProgessBar dans une procédure de recherche !
Bonsoir à toutes et à tous,
Avec une ancienne procédure de recherche, j'ai un TProgessBar fait maison qui à l'air de fonctionner en utilisant un Timer.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if p1.position = 100 then p1.position := 1 ;
p1.position := p1.position +1 ;
if p1.position = 100 then begin
timer1.enabled := false;
w3.Play;
end; |
Code:
1 2 3 4 5 6 7 8
|
procedure TForm1.BchercherClick(Sender: TObject);
begin
RichEdit1.Clear;
timer1.Enabled := true;
ScruteDossier(Edit1.text,Edit2.Text,attributs,CheckBox8.Checked,False);
end; |
Il me semble que je pourrai me passer du timer en l'incluant directement dans la procédure.
Code:
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
|
Procedure ScruteDossier(Dossier:string;filtre:string;attributs:integer;recursif:boolean; eff:boolean);
var
DossierTrouve:string;
Resultat:Integer;
SearchRec:TSearchRec;
begin
If Dossier[length(Dossier)]='\' then Dossier:=copy(Dossier,1,length(Dossier)-1);
if (eff=true) then
ScruteFichier(Dossier,filtre,attributs,true)
else ScruteFichier(Dossier,filtre,attributs,false);
if recursif then
begin
Resultat:=FindFirst(Dossier+'\'+'*.*',FaDirectory,SearchRec);
while Resultat=0 do
begin
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..')
and ((SearchRec.Attr and faDirectory)>0)then
begin
DossierTrouve:=Dossier+'\'+SearchRec.Name;
// attention, souvent un memo est trop petit pour contenir tous les fichiers d'un disque dur !
// si vous avez Delphi3 choisisez un TRichEdit vous serez moins limité
if recursif then
if (eff=true) then
ScruteDossier(DossierTrouve,filtre,attributs,recursif,true)
else ScruteDossier(DossierTrouve,filtre,attributs,recursif,false);
Application.ProcessMessages;
end;
Resultat:=FindNext(SearchRec);
end;
end;
FindClose(SearchRec);
end; |
Et mes tests ne sont pas concluants.
Si quelqu'un avait une idée.
@+,
Cincap