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 :

Déclaration et utilisation de variables dans les méthodes


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Points : 17
    Points
    17
    Par défaut Déclaration et utilisation de variables dans les méthodes
    Bonjour à tous.
    Je suis de retour après un long moment d'absence.
    Je viens poser une question anodine.
    Je veux savoir, par exemple si j'ai des variables de type integer déclarées dans une unité Uxxx et que j'utilise cet unité dans une routine ProcRout,
    qu'est-ce serait mieux entre utiliser les variables de mon unité Uxxx ou déclarer d'autres localement.
    Merci pour la réponse.

  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
    Les variables globales, c'est le mal !
    Si l'on peut s'en passer, c'est mieux, par exemple utiliser un record ou un objet passé en paramètre, oui même pratiquer la POO

    Expliquer mieux votre problématique et l'on pourra trouver une approche de code satisfaisante.
    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
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    je ne comprend pas la question en fait...

    une variable locale c'est pour un usage local

    une variable globale c'est quand on a besoin de partage sa valeur


    je précise cela car j'ai déjà vu du code qui déclarait toutes les variables au niveau de la fiche (ou global peu importe) y compris pour un usage local

    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
     
    var
      IniFile: TIniFile;
      s: string;
     
    procedure proc1;
    begin
      s := IniFile.ReadString(...);
      if s = 'toto' then ...
    end;
     
    procedure proc2;
    begin
      s := IniFile.ReadString(...);
      if s = 'titi' then ...
    end;
    ici IniFile est global, probablement initialisé au début du programme, et on l'utilise à différents endroits, cela permet de ne pas instancier la classe à chaque fois, c'est bien

    mais la variable s est d'un usage purement local, et il n'y a pas lieu de la déclarer globale
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    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
    Citation Envoyé par Paul TOTH Voir le message
    ici IniFile est global, probablement initialisé au début du programme, et on l'utilise à différents endroits, cela permet de ne pas instancier la classe à chaque fois, c'est bien
    Du coup c'est un singleton, en D7, je mettrais la variable dans la section implementation pour la cacher avec un méthode d'accès, une function (éventuellement de classe) comme par exemple Printer()
    utilisable partout mais pas modifiable, c'est une protection mineure mais cela peut avoir son charme.
    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

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Du coup c'est un singleton, en D7, je mettrais la variable dans la section implementation pour la cacher avec un méthode d'accès, une function (éventuellement de classe) comme par exemple Printer()
    utilisable partout mais pas modifiable, c'est une protection mineure mais cela peut avoir son charme.
    je suis d'accord, mais quand on se demande si les variables doivent être locales ou globales on n'en est pas là
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Utiliser une variable dans les noms de variables
    Par julietindiamike dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2020, 12h06
  2. utiliser une variable dans plusieurs méthodes
    Par jeanfils dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/08/2017, 09h46
  3. Utilisation de la variable self dans les méthodes
    Par sliderman dans le forum Général Python
    Réponses: 2
    Dernier message: 19/11/2007, 01h20
  4. Utiliser des variables dans les noms d'objet
    Par Torkan dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/03/2007, 23h54
  5. [Optimisation?] Déclaration de variable dans les boucles
    Par romaintaz dans le forum Langage
    Réponses: 5
    Dernier message: 11/08/2006, 16h08

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