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 :

Utiliser l'objet qui a appelé une procédure (qui ne fait pas partie de la classe)


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 56
    Points
    56
    Par défaut Utiliser l'objet qui a appelé une procédure (qui ne fait pas partie de la classe)
    Salut,
    Je tente de faire un truc qui plante violent, et une solution sympa serait de pouvoir utiliser dans une procédure, les champs de le classe dans laquelle dans une des methodes on apelle cette procédure.

    petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    type
      MaClasse = Class
      public
        MaVariable : string;
      private
        procedure MaMethode;
      end;
    j'ai donc ma classe MaClasse, et je définis par la suite la méthode MaMethode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      procedure MaMethode;
      begin
         MaProcedure;
      end;
    MaProcedure est déjà définie.
    On admet que j'ai besoin dans MaProcedure d'utiliser MaVariable, mais que je ne puisse pas passer MaVariable en paramètre (c'est important ça).

    MonObjet est un objet de classe MaClasse.

    Est-il possible d'utiliser les champs de MonObjet dans ma procédure?

    En fait je me dis qu'il doit y avoir moyen de le faire parceque quand j'utilise l'interface avec les boutons et tout, par exemple la procédure OnClick d'un bouton prend en paramètre un TObject qui s'apelle Sender.

    Si je suis pas très clair, bah prevenez moi

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    oui c'est possible. ton explication est claire.

    Surtout que tu as mis 'MaVariable' en public, elle peut donc être atteinte de l'exterieur d'un objet de type 'MaClasse'.

    PAr contre, il faut absolument que lors de l'execution, 'MaProcedure' soit au courant de l'objet 'MaClasse' qui l'a appelé...

    Tu peux donc transmettre 1 seul parametre (effectivement un peu comme les Sender), à ta procedure 'MaProcedure'.

    tu définies

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure MaProcedure( ClasseApellante: TMaClasse );
    begin
      ShowMessage( ClasseAppelante.MaVariable );
    end;
    et dans l'implémentation de 'MaMéthode', tu appelles 'MaProcedure' de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TMaClasse.MaMethode( ... )
    begin
     ...
      MaProcedure( Self )
    ...
    end;
    Bon courage !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 56
    Points
    56
    Par défaut
    merci, c'était le self qui me manquait, je vais de ce pas essayer =)

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

Discussions similaires

  1. [AC-2003] Une sous-procédure qui met fin à une procédure
    Par Hamadokh dans le forum IHM
    Réponses: 2
    Dernier message: 04/02/2010, 08h59
  2. Ajouter une bouton qui va appeler une macro
    Par funkykid dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2008, 11h12
  3. Réponses: 2
    Dernier message: 06/03/2008, 21h20
  4. class qui en appel une autre qui peux planter !
    Par deadliff dans le forum Langage
    Réponses: 7
    Dernier message: 20/03/2007, 15h40
  5. [PL/SQL] Trigger qui appelle une procédure
    Par alex6891 dans le forum Oracle
    Réponses: 5
    Dernier message: 19/01/2006, 09h01

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