Bonjour,
Je voudrais exécuter un procédure en lui passant en paramètre une autre procédure.
D'après les infos trouvées sur Internet, j'ai essayé ceci :
mais il bloque sur la ligne "TraiterDossier(edDossier.Text, TraiterFichier);" avec le message
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
45
46
47
48 type TTraitement = procedure(const f: String); { TMain } TMain = class(TForm) // .. private { private declarations } // .. procedure TraiterDossier(d: string; t: TTraitement); procedure TaiterFichier(const fichier: String); public { public declarations } end; procedure TMain.TraiterDossier(d: string; t: TTraitement); var sr: TSearchRec; begin if (FindFirst(d + '*', faAnyFile and faDirectory, sr) = 0) then begin repeat if ((sr.Attr and faDirectory) <> 0) then begin if (sr.Name <> '.') and (sr.Name <> '..') then begin nbDir := nbDir + 1; TraiterDossier(IncludeTrailingBackslash(d + sr.Name), t); end; end else begin TaiterFichier(sr.Name); end; until (FindNext(sr) <> 0); end; end; procedure TMain.TaiterFichier(const fichier: String); begin // traitement end; procedure TMain.btnTraiterClick(Sender: TObject); begin TraiterDossier(edDossier.Text, TraiterFichier); end;
main.pas(123,59) Error: Wrong number of parameters specified for call to "TraiterFichier"
Pouvez-vous m'aider sur la bonne manière de procéder ?
Merci d'avance de l'aide que vous pourriez m'apporter.
Partager