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 :

Est-il possible de déclarer des constantes dans une classe?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut Est-il possible de déclarer des constantes dans une classe?
    Bonjour,

    J'aimerais savoir s'il est possible de déclarer des constantes dans une classe A puis ensuite de les accéder par les sous-classes?

    Si oui, comment?

    Merci!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Euh je ne comprends pas très bien le principe de constante de classe par rapport aux constantes tout court mais bon.

    Le truc pour moi qui s'approche le plus serait les variables de classe (apparues seulement depuis D2006). Je te conseilles de regarder de ce côté.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut
    Ma question était en raison qu'au départ j'avais mis ma classe de base et les sous-classes dans le même fichier. Comme ça devenait volumineux, j'ai séparé toutes mes classes dans des fichiers séparés (C_Classe1, C_Classe2, etc).

    Par contre, mes sous-classes n'ont plus accès aux constantes que j'avais déclarées dans le fichier de la classe de base.

    Au lieu de créer un nouvel unité avec les constantes et le mettre dans les uses de chaque sous-classe, je pensais pouvoir les déclarer de façon à ce que les constantes soient aussi visibles par les sous-classes.

    J'utilise malheureusement Delphi 5, connaissez-vous une méthode?

    Merci!

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut


    si tes class enfant font appelle a l'unité de la class mère
    il te suffit de mettre tes constantes dans la parti interface de l'unité mère
    je ne comprend pas trop le probleme
    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
    Unit Unit1
    interface
    Uses ... ;
    
    // il faut les declarer dans la parti interface 
     Const 
       MesConstGlob = x;
    
    Type 
      TClass1 = Class(ToBject)
       ...
      end;
    Implementation  
    ...
    end;
    
    Unit Unit2
    interface
    Uses ... ,Unit1;
    
    Type 
      TClass2 = Class(ToBject)
       ...
      end;
    Implementation  
      // ici tu peut accéder au constantes sans problème 
    ...
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut
    Elles étaient déclarées après implementation, merci c'est exactement ce que je voulais faire!

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    Euh je ne comprends pas très bien le principe de constante de classe par rapport aux constantes tout court mais bon.

    Le truc pour moi qui s'approche le plus serait les variables de classe (apparues seulement depuis D2006). Je te conseilles de regarder de ce côté.
    Ca permet de lier la constante aux classes qui vont s'en servir. C'est très courant en .NET

    La discussion est résolue mais on n'a pas répondu à la question dans l'absolue.

    Depuis Delphi 2006, il est possible de déclarer des classes imbriquées (une classe déclarée à l'intérieur d'une autre classe).
    On peut aussi imbriquer des déclarations de constantes par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    type
      TLogger = class(TObject)
      public
        const ERROR = 0;
              WARNING = 1;
              INFO = 2;
              VERBOSE = 3;
        procedure LogMessage(const msg : string; Level : integer);
      end;
    Puis au moment de l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var log : TLogger;
    begin
      ...
      Log.LogMessage('Message', TLogger.INFO);

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    dans les version precedente de delphi tu pouvait utilise les methode de class

    exemple :
    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
     
    TMonObjet = Class
    Public
    Class Fonction ERROR : integer
    Class Fonction WARNING : integer
    Class Fonction INFO : integer
    Class Fonction VERBOSE : integer
    end;
     
    class function TMonObjet.ERROR : integer;
    begin
        result := 0;
    end;
     
    Class Fonction TMonObjet.WARNING : integer
    begin
        result := 1;
    end;
    Class Fonction TMonObjet.INFO : integer
    begin
        result := 2;
    end;
    Class Fonction TMonObjet.VERBOSE : integer
    begin
        result := 3;
    end;
    l'utilisation ce fait de la même façon

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2009, 10h20
  2. Déclarer des constante dans le makefile
    Par Colbix dans le forum Eclipse C & C++
    Réponses: 2
    Dernier message: 09/03/2009, 17h33
  3. comment déclarer des variables dans une proc?
    Par soft_angel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2008, 16h48
  4. Est-il possible de récupérer des parametres d'une librairies JS ?
    Par raton_laveur dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/09/2008, 16h33
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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