POO à gogo - Les enregistrements avec Free Pascal et Lazarus 2/2
Par Gilles Vasseur
Le 2017-04-08 10:13:42, par gvasseur58, Responsable Lazarus & Pascal
Les enregistrements étendus
Après avoir défini et utilisé les enregistrements simples, avec ou sans variantes, puis étudié les modes de compactage mis en œuvre essentiellement dans un but d'échanger des données avec d'autres applications, il est temps de s'intéresser aux enregistrements étendus dont ce tutoriel se propose de montrer l'efficacité et la puissance.
Avec ce tutoriel, vous vous devriez être capable de :
http://gilles-vasseur.developpez.com...egistrements2/
Que pensez-vous de ce tutoriel ?
Les enregistrements étendus vous paraissent-ils devoir être utilisés plus souvent ?
Après avoir défini et utilisé les enregistrements simples, avec ou sans variantes, puis étudié les modes de compactage mis en œuvre essentiellement dans un but d'échanger des données avec d'autres applications, il est temps de s'intéresser aux enregistrements étendus dont ce tutoriel se propose de montrer l'efficacité et la puissance.
Avec ce tutoriel, vous vous devriez être capable de :
- déclarer un enregistrement étendu ;
- implémenter ses méthodes ;
- évaluer les avantages de son utilisation ;
- définir et utiliser des opérateurs ;
- définir et manipuler des énumérateurs.
http://gilles-vasseur.developpez.com...egistrements2/
-
mtournayMembre habituéBonjour
Merci beaucoup pour cette suite de tuto sur la POO FPC.
Très bien écrit, clair et facilement compréhensible !
J'attends avec impatience le(s) tuto sur les helpers !le 10/04/2017 à 21:33 -
M.DlbRédacteur/ModérateurHello !
Très intéressant. Venant de TP7, j'ai mis énormément de temps avant d'utiliser les classes, préférant ces fameux enregistrements étendus, qui sont, d'après ma compréhension, similaires aux "objects" dans TP7. J'utilise désormais les classes, qui intègrent l'allocation de la mémoire, masquant ce que nous faisions manuellement avec les pointeurs sur ces records.
J'utilise toujours les records pour représenter des structures de données, en mode simple (cf le premier tuto) avec procédures externes pour la manipulation. N'ayant jamais investigué le sujet, qu'en est-il de l'écriture de ces records avancés dans des fichiers de records (file of xxx) ? Est-çe qu'ils sont écrits de la même façon que les records simples ? Pas de données supplémentaires liées aux méthodes ?le 08/04/2017 à 22:15 -
gvasseur58Responsable Lazarus & PascalBonjour,
Oui, les enregistrements étendus ne diffèrent en rien des enregistrements simples dès lors qu'il s'agit de les enregistrer sur un support. Comme expliqué dans le tutoriel, le code lié aux méthodes est stocké en dehors des enregistrements eux-mêmes pour être partagé si nécessaire.
Par ailleurs, les objets existent encore dans Free Pascal comme vestiges des objets de TP7. Leur appellation est très équivoque et ils sont indiqués comme obsolètes, mais certains les emploient encore pour des tâches particulières.
Cordialement,
Gillesle 09/04/2017 à 13:36 -
thierryboMembre habituéBonjour,
j’essaie d'utiliser ll'iniyé StrinVars pour Delphi figurant ici : http://cc.embarcadero.com/Item/25670
Sur les "class operator Equal" ou notEqual j'ai le message :Error: It is not possible to overload this operator. Related overloadable operators (if any) are:
You are trying to overload an operator that cannot be overloaded.
The following operators can be overloaded:
+,-,*,/,=,>,<,<=,>=,is,as,in,**,:=Code : 1
2class operator Explicit class operator Implicit
TBle 23/07/2017 à 1:34 -
gvasseur58Responsable Lazarus & PascalBonjour,
Dans la version actuelle de Free Pascal, un certain nombre d'opérateurs pris en charge par Delphi ne le sont pas : il en est ainsi de Implicit. Soit le transtypage aura lieu malgré tout, soit il faudra le rendre explicite en cas d'erreur. En gros, dans la bibliothèque mentionnée, il suffit d'éliminer ce Implicit et de voir ce qu'il se passe. le 23/07/2017 à 8:37