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

Delphi Discussion :

[Implémentation][Conseils] Unités et symboles


Sujet :

Delphi

  1. #1
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut [Implémentation][Conseils] Unités et symboles
    Hello

    Ma question porte sur la déclaration de constantes/symboles et de fichiers.

    J'ai plutôt l'habitude de programmer en C et ça fait bientôt 7 ans que j'ai plus fait de Pascal/Delphi .

    Dans mon projet Delphi, j'ai plusieurs 'Forms' et 'Units', et j'utilise beaucoup de constantes. J'ai l'habitude d'utiliser les symboles en C (#define SYMBOLE VALEUR) qui sont remplacer à la compilation -> pas de place nécessaire en mémoire ! Ces déclarations étant toutes regroupées dans un fichier d'entête.

    J'aurai voulu faire la même chose en Delphi. Je m'y suis pris de la sorte :
    • Une unité déclarant toute mes constantes
    • Un 'uses' de cette unité dans celles souhaitant accéder aux constantes
    Est-ce une bonne façon de travailler ?
    Existe-t-il une variante similaire à la façon que j'ai décrite en C ?
    Et finalement, puis-je supprimer les mots réserver 'implémentation', ... de l'unité contenant les constantes, lesquels sont nécessaires ?

    Merci d'avance !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Pour les constantes, c'est la meilleure démarche ... cela permet d'éviter des erreurs stupides d'avoir une valeur à un endroit et une autre ailleurs

    pour l'aspect macro de define du C, semble que ce n'est pas très courant en delphi, je n'en sais rien, et une réponse à ce sujet m'interesse aussi

    pour 'implémentation', tu l'enlèves, et si ça compile, tant mieux, sinon ça ne doit pas forcément gener, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Malheureusement les macros n'ont jamais existé en Pascal, et c'est dommage, même si bien sûr c'est lié à la philosophie du langage... quant à l'interpréteur de constantes, il est toujours resté très rudimentaire (les quatre opérations de base).

  4. #4
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ok, donc en fait pour mon fichier servant uniquement a déclarer les constantes, j'ai quand même besoin de faire une unité complète (avec 'interface' et 'implementation') ! Pigé !

    Citation Envoyé par CapJack
    ... quant à l'interpréteur de constantes, il est toujours resté très rudimentaire (les quatre opérations de base).
    Les quatre opération arithmétique de base tu entends je suppose (+, -, *, /)
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  5. #5
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Citation Envoyé par femtosa
    Les quatre opération arithmétique de base tu entends je suppose (+, -, *, /)
    Oui, c'est ça.

    Edit : je précise et leurs avatars mod, div, shr, shl.

  6. #6
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ok à tous !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 182
    Points : 1 853
    Points
    1 853
    Par défaut $include
    J'arrive un peu tard dans la discussion... il y a aussi la technique d'utiliser un fichier include ( .INC ) :

    Syntax
    {$I filename}
    {$INCLUDE filename}
    mon blog - mon site web

  8. #8
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Mieux vaut tard que jamais

    Intéressant, et que peut-on mettre dans ces fichiers .inc ... ?
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 182
    Points : 1 853
    Points
    1 853
    Par défaut fichiers .INC
    a priori on peut y mettre n'importe quel morceau de code.

    Par exemple la déclaration complète des constantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const
     MAXTRUC = 1 ;
    ou bien uniquement
    et ensuite dans ton unité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const
    {$I fichier.INC}
    C'est une peu comme du copier/coller, donc il faut une cohérence entre l'unité qui importe et le fichier importé.

    Mais le .INC peut aussi contenir du code plus complexe.

    En pratique c'est beaucoup utilisé pour définir des options de compilation avec
    des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    {$define OPTION1}
    {$.define OPTION2}
    etc.
    mon blog - mon site web

  10. #10
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ok merci pour la précision !
    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Points : 754
    Points
    754
    Par défaut
    Pour du code plus propre, il y a la possibilité de définir toutes les constantes au sein d'une classe à instanciation unique (un singleton) créée dans la clause Initialization et libérée dans la clause Finalization d'une unité. ( encapsuler les constantes dans une classe)

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

Discussions similaires

  1. [1.5][dbutils]Conseil sur mon implémentation ?
    Par elitost dans le forum Langage
    Réponses: 2
    Dernier message: 14/09/2006, 12h43
  2. Réponses: 8
    Dernier message: 29/06/2006, 14h22
  3. [JDO] [Conseil]Quelle Implémentation ?
    Par hamed dans le forum Persistance des données
    Réponses: 19
    Dernier message: 02/02/2005, 21h38
  4. [EJB Session] Besoin conseil pour implémentation
    Par stago dans le forum Java EE
    Réponses: 10
    Dernier message: 13/07/2004, 11h20

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