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 :

Ordre de chargement des unités et section initialization


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut Ordre de chargement des unités et section initialization
    Bonjour

    Dans quel ordre Delphi 7 charge-t-il les unités aussi bien les clauses uses de la partie interface que la partie implémentation ?

    L'exécution de la section initialization s'effectue avant ou après le chargement des unités listées dans la clause uses ?

    Merci
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Il me semble que la clause use ne sert qu'à la compilation...
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Les unités sont chargées dans l'ordre de la déclaration (uses).
    Les initializations sont executées dans le même ordre, d'abord pour l'interface puis l'implémentation.

  4. #4
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr

    "I am completely operational, and all my circuits are functioning perfectly"

    Hum c'est bien ce que je pensais ... j'ai quand même eu un phénomène bizarre (une initialization qui s'exécutait avant une autre dont le nom figurait pourtant dans la clause uses) j'ai dû me tromper quelque part ..

    Je vais vérifier.

    Merci
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Daisy, Daisy ...

    C'est alors que cette unité est déjà déclarée dans le uses d'une autre unité (chargée avant). Les blocs d'initialization/finalization ne sont exécutés qu'une fois.

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Ou, dans le cas de références circulaires en partie implémentation, il n'est pas aisé (voire impossible) de prévoir l'ordre d'exécution des init/finit.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Pas dans les références circulaires. Dans ce cas la 1ère unité aura déjà été invoquée.

    On peut le prévoir, mais c'est très ennuyeux. Il faut partir de la source du projet et suivre les liens un à un.

    Edit: Mais un OutputDebugString dans les Init. Tu auras ainsi l'ordre chronologique de tes unités.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/03/2010, 21h42
  2. Ordre de chargement des war dans un ear
    Par menzlitsh dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 01/03/2010, 20h53
  3. Gestion de l'ordre de chargement des images
    Par MrManchot dans le forum jQuery
    Réponses: 1
    Dernier message: 25/01/2010, 14h42
  4. Ordre de chargement des librairies
    Par Duc Lebowski dans le forum Weblogic
    Réponses: 1
    Dernier message: 15/01/2008, 16h31
  5. [weblogic 6][ejb]Ordre de chargement des classes
    Par Tistou07 dans le forum Weblogic
    Réponses: 1
    Dernier message: 14/02/2007, 10h14

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