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 :

[TLazIntfImage] Message cabalistique du compilateur, concernant un exemple du wiki [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut [TLazIntfImage] Message cabalistique du compilateur, concernant un exemple du wiki
    Bonjour,

    sur la page http://wiki.lazarus.freepascal.org/D..._with_Graphics on trouve un exemple qu'il suffit de copier/coller pour ensuite l'étudier.

    Le souci, c'est que concernant la ligne DestCanvas := TLazCanvas.Create(DestIntfImage); (3e ligne de la 1re section, "// Prepare the destination"), sans rien changer à l'exemple, le compilateur n'est pas content du tout puisqu'il m'insulte avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: Constructing a class "TLazCanvas" with abstract method "DoCopyRect"
    Warning: Constructing a class "TLazCanvas" with abstract method "DoDraw"
    J'avoue humblement que tout ce qui est abstrait me passant loin au-dessus, je ne vais pas savoir me débarrasser de ces deux lignes qui font désordre, dans la fenêtre des messages.

    Une idée ?
    Le problème est présent sous FPC2.6.2/Laz1.4.0 et sous FPC3.0.0/Laz1.6.2

  2. #2
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    Apparemment le souci (ce n'est pas vraiment un problème si votre programme ou une autre partie des programmes appelés n'utilisent pas ces méthodes) n'est pas nouveau: cf. équivalent ci-après
    http://forum.lazarus.freepascal.org/...c,19329.0.html

    Quelqu'un a même envisagé un patch, semble t-il (mais je ne sais pas pour quelle version):
    https://github.com/alrieckert/lazaru.../lazcanvas.pas

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 969
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 969
    Points : 15 434
    Points
    15 434
    Par défaut
    Citation Envoyé par FChrisF Voir le message
    Apparemment le souci (ce n'est pas vraiment un problème si votre programme ou une autre partie des programmes appelés n'utilisent pas ces méthodes) n'est pas nouveau: cf. équivalent ci-après
    http://forum.lazarus.freepascal.org/...c,19329.0.html
    Bien joué !

    Citation Envoyé par FChrisF Voir le message
    Quelqu'un a même envisagé un patch, semble t-il (mais je ne sais pas pour quelle version):
    https://github.com/alrieckert/lazaru.../lazcanvas.pas
    Moi non plus, j'ai testé en remplaçant le mien par celui du lien et ça fonctionne

    C'était rigolo de lire l'histoire dans le 1er lien, un bug oublié...

  4. #4
    Rédacteur

    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 858
    Points
    20 858
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Jipété Voir le message
    J'avoue humblement que tout ce qui est abstrait me passant loin au-dessus, je ne vais pas savoir me débarrasser de ces deux lignes qui font désordre, dans la fenêtre des messages.
    Bonjour Jipété,

    Ce qui est abstrait ne peut pas être utilisé concrètement . En fait, il ne s'agit pas d'un bogue, mais d'une classe qui avait été prévue au départ pour être surchargée : certaines méthodes ne sont pas implémentées parce qu'on ne sait pas au niveau de la classe actuelle ce qu'elles donneront réellement plus tard. On sait juste qu'elles seront nécessaires.

    Si tu veux étudier une classe avec des méthodes abstraites, regarde TStrings. On n'instancie pas directement TStrings, mais une des ses descendantes comme TStringList, car cette dernière implémente les méthodes abstraites.

    Mais alors pourquoi se fatiguer avec des classes abstraites ?
    • d'abord, elles obligent les classes descendantes à implémenter des méthodes jugées indispensables (elles servent de modèle, pourrait-on dire) ;
    • ensuite, elles allègent les classes descendantes en implémentant une sorte de tronc commun ;
    • enfin, en tant qu'ancêtres, elles sont des candidates idéales pour le polymorphisme. Par exemple, tu instancies une TStringList, mais tu prends un TStrings en paramètre d'une méthode. Pourquoi ? Parce que ta méthode acceptera tout ce qui descend d'une TStrings : les TStringList, mais aussi les lignes d'un TMemo.


    Il arrive, et j'ai cru comprendre que c'était le cas ici, que le choix d'une classe abstraite ne soit pas judicieux. Là, la théorie s'incline .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/04/2017, 14h40
  2. Réponses: 1
    Dernier message: 15/06/2007, 03h23
  3. [MySQL] message 'unknown column' concernant 'field list'
    Par thannane dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/02/2007, 09h24
  4. concernant les boites de message
    Par @rkane dans le forum Access
    Réponses: 2
    Dernier message: 16/01/2007, 10h54

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