Ensembles vont bien, tableaux sont geniaux.
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 d'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 = Enregistrer...
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é eMail (pour un e-mail), et un entier (Cardinal) appelé Posts (pour contenir le nombre de 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 lequel des Delphes's types intégrés comme String ou Integer. Remarque: la déclaration de type TMember n'alloue pas de 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, lorsque 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 avecmot-clé.
Nous pouvons maintenant copier les valeurs des champs de DelphiGuide dans 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.
Enregistrements en tant que champs d'enregistrement
Puisqu'un type d'enregistrement est légitime comme tout autre type Delphi, nous pouvons avoir un champ d'enregistrement comme un enregistrement lui-même. Par exemple, nous pourrions créer ExpandedMember pour garder une trace de ce que le membre soumet avec les informations sur le membre.
Il est désormais plus difficile de remplir toutes les informations nécessaires pour un seul enregistrement. Plus de périodes (points) sont nécessaires pour accéder aux champs de TExpandedMember.
Enregistrement avec des champs "inconnus"
Un type d'enregistrement peut avoir une partie variant (à ne pas confondre avec la variable de type variant). Les enregistrements de variantes sont utilisés, par exemple, lorsque nous voulons créer un type d'enregistrement comportant des champs pour différents types de données, mais nous savons que nous n'aurons jamais besoin d'utiliser tous les champs dans un seul enregistrement exemple. Pour en savoir plus sur les parties Variant dans Records, consultez les fichiers d'aide de Delphi. L'utilisation d'une variante de type d'enregistrement n'est pas sécurisée et n'est pas une pratique de programmation recommandée, en particulier pour les débutants.
Cependant, les enregistrements de variantes peuvent être très utiles si vous vous trouvez dans une situation où les utiliser.