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

Langage Delphi Discussion :

Comment passer une procédure en paramètre ?


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 175
    Par défaut Comment passer une procédure en paramètre ?
    Bonjour.

    Comment faire pour passer une procédure en parametre d'une méthode et l'executer dans cette méthode ?

    Du genre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure MaProd;
    ...
    procedure TraiterProc(AProcEnParam: ...);
    begin
      // Executer AProcEnParam
      ...
      ShowMessage('Procedure terminée');
    end;
     
    procedure TFormMain.actActionExecute(Sender: TObject);
    begin
      TraiterProc(MaProd);
    end;

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Par défaut
    Bonjour,

    Je pense que vous ne pouvez passer en paramètre que des procédure dons le type à été prédéfinie.

    Par exemple TNotifyEvent à été défini par Borland.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TNotifyEvent = procedure(Sender: TObject) of object;
    Par exemple:

    Soir la procedure
    MyProc(Sender: TObject);

    et La procedure
    Exemple(Proc: TNotifyEvent);

    Vous devriez pouvoir fair
    Exemple(MyProc);

  3. #3
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Il faut déclarer le type de ta procédure:

    puis déclarer l'argument dans la méthode d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TraiterProc(AProcEnParam: TMaProc);
    begin
       // Appel :
      AProcEnParam;
    end;
    ATTENTION
    Si ta procédure est une procédure déclarée dans une classe (autrement dit une méthode), la déclaration se fait comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMaProc = procedure of object;
    Aussi, si il y a des arguments, il faut les déclarer (par ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TMaMethode = procedure (Sender: TObject) of object;
    TMaFonction = function (A, B: Integer): Boolean;
    TUneAutreMethode = function (A, B: Integer): Boolean of object;

  4. #4
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    J'ajoute que l'aide Delphi explique tout sur ce sujet.
    Pour l'obtenir, j'ai fait sur of object puis sélectionner la rubrique "Les types procédure"

  5. #5
    Membre confirmé
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 175
    Par défaut
    Merci.
    C'est pas exactement ce que je voulais faire mais je m'aperçois que ce n'est pas faisable. (Passer des methodes avec un nombre et/ ou des type differents de parametres).

    Ca m'a fait réviser quand même

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

Discussions similaires

  1. [Débutant] Comment passer une énum en paramètre?
    Par bilou_12 dans le forum C#
    Réponses: 2
    Dernier message: 29/01/2012, 22h24
  2. Réponses: 16
    Dernier message: 26/05/2009, 13h32
  3. Réponses: 4
    Dernier message: 28/03/2008, 21h43
  4. Passer une procédure en paramètres
    Par FamiDoo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/02/2008, 14h41
  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