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 :

Les méthodes avec Free Pascal/Lazarus (1/2), un tutoriel de Gilles Vasseur


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 Les méthodes avec Free Pascal/Lazarus (1/2), un tutoriel de Gilles Vasseur
    POO à gogo !
    Les méthodes avec Free Pascal/Lazarus (1/2) : méthodes statiques et virtuelles - constructeurs et destructeurs

    À quoi servent les méthodes statiques ? Comment mettre en œuvre l'héritage ? Qu'apportent les méthodes virtuelles ? Comment se manifeste le polymorphisme ? Quel rôle joue l'héritage dans un constructeur ou un destructeur ? Que se passe-t-il si un constructeur déclenche une erreur ? Qu'est-ce que la surcharge d'un constructeur ou d'un destructeur ? Avec ce tutoriel, vous allez consolider vos connaissances concernant la Programmation Orientée Objet en approfondissant les notions de méthode, de constructeur et de destructeur. Vous pourrez répondre aux questions posées (y compris dans une soirée mondaine ) et produire des applications efficaces et surprenantes !


    http://gilles-vasseur.developpez.com...es-methodes-1/

    Et vous ?

    Que pensez-vous de ce tutoriel ?
    Avez-vous l'habitude de "penser POO" lorsque vous développez vos applications ?
    Ou ce tutoriel vous incitera-t-il à le faire ?


    Retrouver les meilleurs cours et tutoriels pour apprendre Lazarus
    Retrouver les meilleurs cours et tutoriels pour apprendre la programmation

    [Un merci tout particulier à ThWilliam qui, grâce à ses critiques pertinentes, a beaucoup contribué à ce tutoriel !]
    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
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour Gilles.

    Très beau tutoriel .

    Je viens d'expérimenter la déclaration de plusieurs constructeurs dans une classe enfant.
    Comme classe ancêtre, j'ai pris TCustomControl dont le constructeur est : constructor Create(AOwner: TComponent); override;
    Il faut remonter très loin dans la généalogie pour trouver le constructeur virtuel.
    Dans la classe enfant (TBasicPanel), je voulais deux constructeurs.
    Voici un exemple (pas très futé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TBasicPanel = class(TCustomControl)
        constructor Create(AOwner: TComponent; AParam: string); reintroduce;
        constructor Create(AOwner: TComponent; AParam: integer); reintroduce;
      end;
    Fidèle à mes habitudes prises sous Delphi7, j'utilise la directive reintroduce puisque je modifie les paramètres d'appel du constructeur de TCustomControl.
    Si j'avais utilisé la directive overload, j'aurais permis d'instancier un objet avec le constructeur de TCustomControl, ce que je voulais interdire.
    Et ceci, même si je "signe" le deuxième constructeur : reintroduce; overload; !
    Sous Delphi 7, la directive overload est obligatoire pour plusieurs procédures du même nom. Sous Lazarus, cette directive n'est pas requise.

    Après quelques tests, je trouve Lazarus un peu laxiste avec les directives. Il y a sans doute une différence d'allocation mémoire, mais tout ce qui suit ne génère aucun message d'avertissement :
    - supprimer la directive reintroduce (--> aucune directive : le constructeur statique écrase tout).
    - ajouter virtual : reintroduce; virtual; (--> aucun sens amha, puisque on rend virtuel ce que l'on vient de rendre statique)
    - ou tout simplement : virtual.

    Cordialement
    Thierry

  3. #3
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 370
    Points : 9 705
    Points
    9 705
    Par défaut
    Merci,

    Très beau tuto.

    Ça ne fait de mal de redécouvrir les élémentaires, et de se rendre compte de nos mauvaises habitudes...

    Encore merci.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  4. #4
    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
    Merci pour les encouragements. Mais les critiques seront les bienvenues aussi, sinon je vais me croire obligé de publier la suite qui portera sur des sujets plus rares comme les méthodes de classe, par exemple .

    Sinon, ThWilliam a raison : Free Pascal n'est pas très regardant sur l'utilisation, même incohérente, de directives. Je fais confiance à son esprit systématique pour étudier les conséquences de certains agencements exotiques .

    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

  5. #5
    En attente de confirmation mail
    Femme Profil pro
    pape n'aimant pas les censeurs
    Inscrit en
    Janvier 2010
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Vatican

    Informations professionnelles :
    Activité : pape n'aimant pas les censeurs

    Informations forums :
    Inscription : Janvier 2010
    Messages : 803
    Points : 1 407
    Points
    1 407
    Par défaut
    Félicitations pour ce travail de "vulgarisation" qui participe de manière notable à l'enrichissement de la documentation Lazarus

    Je serai par contre plus dubitatif pour son usage lors d'une soirée mondaine

Discussions similaires

  1. Réponses: 24
    Dernier message: 29/07/2016, 16h49
  2. Réponses: 0
    Dernier message: 24/11/2011, 11h10

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