Comprendre les constantes typées dans Delphi

Quand Delphes appelle un gestionnaire d'événements, les anciennes valeurs des variables locales sont effacées. Et si nous voulons savoir combien de fois un bouton a été cliqué? Nous pourrions faire persister les valeurs en utilisant une variable de niveau unité, mais c'est généralement une bonne idée de réserver des variables de niveau unité uniquement pour partager des informations. Ce dont nous avons besoin sont généralement appelés variables statiques ou constantes typées dans Delphi.

Variable ou constante

Les constantes typées peuvent être comparées à des variables-variables initialisées dont les valeurs sont définies lors de l'entrée dans leur bloc (généralement le gestionnaire d'événements). Une telle variable n'est initialisée que lorsque le programme démarre. Après cela, la valeur d'une constante typée persiste entre les appels successifs à leurs procédures.

L'utilisation de constantes typées est un moyen très simple d'implémenter des variables initialisées automatiquement. Pour implémenter ces variables sans constantes typées, nous devons créer une section d'initialisation qui définit la valeur de chaque variable initialisée.

instagram viewer

Constantes de type variable

Bien que nous déclarions des constantes typées dans la section const d'une procédure, il est important de se rappeler qu'elles ne sont pas des constantes. À tout moment de votre application, si vous avez accès à l'identifiant d'une constante typée, vous pourrez modifier sa valeur.

Pour voir les constantes tapées au travail, placez un bouton sur un formulaire vierge et affectez le code suivant au gestionnaire d'événements OnClick:

procédure TForm1.Button1Click (expéditeur: TObject); const clics: Entier = 1; // pas une vraie constantecommencer Form1.Caption: = IntToStr (clics); clics: = clics + 1; fin; 

Notez que chaque fois que vous cliquez sur le bouton, les incréments de légende se forment régulièrement.
Essayez maintenant le code suivant:

procédure TForm1.Button1Click (expéditeur: TObject); var clics: Entier; commencer Form1.Caption: = IntToStr (clics); clics: = clics + 1; fin; 

Nous utilisons maintenant une variable non initialisée pour le compteur de clics. Notez cette valeur étrange dans la légende des formulaires après avoir cliqué sur le bouton.

Constantes typées constantes

Vous devez convenir que l'idée de constantes modifiables semble un peu étrange. Dans les versions 32 bits de Delphi, Borland a décidé de décourager leur utilisation, mais les prend en charge pour le code hérité Delphi 1.

Nous pouvons activer ou désactiver les constantes typées assignables sur la page Compilateur de la boîte de dialogue Options du projet.

Si vous avez désactivé les constantes typées assignables pour un projet donné, lorsque vous essayez de compiler le code précédent, Delphi vous donnera une erreur «Le côté gauche ne peut pas être attribué à» lors de la compilation. Vous pouvez cependant créer une constante typée assignable en déclarant:

{$ J +}const clics: Entier = 1; {$ J-}

Par conséquent, le premier exemple de code ressemble à:

procédure TForm1.Button1Click (expéditeur: TObject); const{$ J +} clics: Entier = 1; // pas une vraie constante{$ J-}commencer Form1.Caption: = IntToStr (clics); clics: = clics + 1; fin; 

Conclusion

C'est à vous de décider si vous voulez que les constantes typées soient assignables ou non. L'important ici est qu'en plus d'être idéal pour les compteurs, les constantes typées sont idéales pour composants alternativement visibles ou invisibles, ou nous pouvons les utiliser pour basculer entre n'importe quel booléen Propriétés. Les constantes typées peuvent également être utilisées dans le gestionnaire d'événements de TTimer pour garder une trace du nombre de déclenchements.

instagram story viewer