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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

POO à gogo - Les enregistrements (records) avec Free Pascal et Lazarus 2/2


Sujet :

Lazarus Pascal

  1. #1
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut POO à gogo - Les enregistrements (records) avec Free Pascal et Lazarus 2/2
    Les enregistrements étendus

    Nom : logoFPC.png
Affichages : 2219
Taille : 16,3 Ko

    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 ?
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    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 ?
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    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
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  4. #4
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 195
    Points
    195
    Par défaut
    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 !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 163
    Points
    163
    Par défaut
    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 - Visualiser dans une fenêtre à part
    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

  6. #6
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par thierrybo Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 .
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

Discussions similaires

  1. Réponses: 16
    Dernier message: 14/04/2017, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo