IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

POO à gogo - Les enregistrements avec Free Pascal et Lazarus 2/2
Par Gilles Vasseur

Le , par gvasseur58

0PARTAGES

11  0 
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 :
  • 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/

Que pensez-vous de ce tutoriel ?
Les enregistrements étendus vous paraissent-ils devoir être utilisés plus souvent ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de mtournay
Membre habitué https://www.developpez.com
Le 10/04/2017 à 21:33
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 !
3  0 
Avatar de M.Dlb
Rédacteur/Modérateur https://www.developpez.com
Le 08/04/2017 à 22:15
Hello !

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 ?
1  0 
Avatar de gvasseur58
Responsable Lazarus & Pascal https://www.developpez.com
Le 09/04/2017 à 13:36
Citation Envoyé par M.Dlb Voir le message

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 ?
Bonjour,

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,

Gilles
1  0 
Avatar de thierrybo
Membre habitué https://www.developpez.com
Le 23/07/2017 à 1:34
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,**,:=
Je les remplace par = et <> et ça passe. Il reste les deux opérateurs de transtypage

Code : Sélectionner tout
1
2
class operator Explicit
class operator Implicit
Le premier passe bizarrement mais pas Implicit, et la je ne sais pas par quoi le remplacer.

TB
0  0 
Avatar de gvasseur58
Responsable Lazarus & Pascal https://www.developpez.com
Le 23/07/2017 à 8:37
Citation Envoyé par thierrybo Voir le message


Code : Sélectionner tout
1
2
class operator Explicit
class operator Implicit
Le premier passe bizarrement, mais pas Implicit, et je ne sais pas par quoi le remplacer.
Bonjour,

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 .
0  0