Déclaration de symboles et informations de référence croisée (Delphi)
Remonter à Liste des directives de compilation Delphi - Index
Type |
Switch |
Syntaxe |
{$Y+}, {$Y-}, ou {$YD}; {$REFERENCEINFO ON}, {DEFINITIONINFO OFF} ou {$REFERENCEINFO OFF}, ou {DEFINITIONINFO ON} |
Par défaut |
{$YD} {$DEFINITIONINFO ON} |
Portée |
Globale |
Remarques
La directive $Y contrôle la génération des informations de référence aux symboles utilisés par le gestionnaire de projet, l'explorateur de code et l'éditeur de code. Ces informations sont présentées sous la forme de tableaux donnant les numéros des lignes du code source de toutes les déclarations et références (dans l'état {$Y+} aux identificateurs d'un module. Pour les unités, ces informations sont mémorisées dans le fichier .dcu avec le code objet de l'unité. Elles augmentent ainsi la taille des fichiers .dcu, mais cela n'affecte ni la taille, ni la vitesse d'exécution du programme exécutable.
Lorsqu'un programme ou une unité est compilé en mode par défaut {$YD} (ou {DEFINITIONINFO ON}), le compilateur enregistre les informations qui indiquent où est défini chaque identificateur. Pour la plupart des identificateurs — variables, constantes, classes, etc. — le compilateur enregistre l'emplacement de la déclaration. Pour les procédures, fonctions et méthodes, il enregistre l'emplacement de l'implémentation. Cela active la navigation du code.
Lorsqu'un programme ou une unité est compilé en mode {$Y+} (ou {REFERENCEINFO ON}), le compilateur enregistre les informations qui indiquent où est utilisé chaque identificateur et où il est défini. Cela active la page Références du navigateur de projets.
Lorsqu'un programme ou une unité est compilé en mode {$Y-} (ou {DEFINITIONINFO OFF} ou {REFERENCEINFO OFF}), aucune information de référence de symbole n'est enregistrée. Cela désactive la navigation du code et la page Références de l'explorateur de projet.
La bascule $Y est généralement utilisée en combinaison avec les bascules $D et $L, qui contrôlent la génération des informations de débogage et de symboles locaux. La directive $Y n'a un effet que si $D et $L sont toutes deux activées.