Comprendre et utiliser les types de données d'enregistrement dans Delphi

Les ensembles sont ok, les tableaux sont super.

Supposons que nous voulons créer trois tableaux unidimensionnels pour 50 membres de notre communauté de programmation. Le premier tableau est pour les noms, le second pour les e-mails et le troisième pour le nombre de téléchargements (composants ou applications) vers notre communauté.

Chaque tableau (liste) aurait des index correspondants et beaucoup de code pour maintenir les trois listes en parallèle. Bien sûr, nous pourrions essayer avec un tableau en trois dimensions, mais qu'en est-il de son type? Nous avons besoin d'une chaîne pour les noms et les e-mails, mais un entier pour le nombre de téléchargements.

La façon de travailler avec une telle structure de données est d'utiliser Delphi structure d'enregistrement.

TMember = Record…

Par exemple, la déclaration suivante crée un type d'enregistrement appelé TMember, celui que nous pourrions utiliser dans notre cas.

Essentiellement, un la structure des données d'enregistrement peut mélanger n'importe quel type intégré de Delphi y compris tous les types que vous avez créés. Les types d'enregistrement définissent des collections fixes d'éléments de différents types. Chaque article, ou champ, est comme une variable, composée d'un nom et d'un type.

Le type de membre contient trois champs: une valeur de chaîne appelée Nom (pour contenir le nom d'un membre), une valeur d'un type de chaîne appelée eMail (pour un e-mail) et un entier (Cardinal) appelé Posts (pour contenir le nombre des soumissions à notre communauté).

Une fois que nous avons configuré le type d'enregistrement, nous pouvons déclarer qu'une variable est de type TMember. TMember est maintenant tout aussi bon type de variable pour les variables que n'importe quel type intégré de Delphi comme String ou Integer. Remarque: la déclaration de type TMember n'alloue aucune mémoire pour les champs Name, eMail et Posts;

Pour créer réellement une instance de l'enregistrement TMember, nous devons déclarer une variable de type TMember, comme dans le code suivant:

Maintenant, quand nous avons un enregistrement, nous utilisons un point pour isoler les champs de DelphiGuide.

Remarque: le code ci-dessus peut être réécrit à l'aide de avec mot-clé.

Nous pouvons maintenant copier les valeurs des champs de DelphiGuide vers AMember.

Étendue et visibilité des enregistrements

Le type d'enregistrement déclaré dans la déclaration d'un formulaire (section d'implémentation), d'une fonction ou d'une procédure a une portée limitée au bloc dans lequel il est déclaré. Si l'enregistrement est déclaré dans la section interface d'une unité, il a une portée qui inclut toutes les autres unités ou programmes qui utilisent l'unité où la déclaration a lieu.

Un tableau de records

Puisque TMember agit comme tout autre type Object Pascal, nous pouvons déclarer un tableau de variables d'enregistrement:

Remarque: voici comment déclarer et initialiser un tableau constant d'enregistrements dans Delphi.