IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Passer une procédure en paramètre [Lazarus]


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Passer une procédure en paramètre
    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 :

    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;
    mais il bloque sur la ligne "TraiterDossier(edDossier.Text, TraiterFichier);" avec le message
    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.
    Dernière modification par gvasseur58 ; 27/04/2017 à 23h23.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/11/2016, 23h29
  2. Faire passer une table en paramètre pour une procedure
    Par samplaid dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/02/2006, 11h26
  3. Réponses: 1
    Dernier message: 15/04/2005, 11h30
  4. [Conception] Passer une fonction en paramètre
    Par pejay dans le forum Langage
    Réponses: 9
    Dernier message: 09/12/2004, 13h58
  5. Passer une procédure en paramètre ?
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2003, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo