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

  1. #1
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    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 confirmé
    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
    Points : 576
    Points
    576
    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 éprouvé
    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
    Points : 1 177
    Points
    1 177
    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;
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  4. #4
    Membre éprouvé
    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
    Points : 1 177
    Points
    1 177
    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"
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

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

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    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