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 :

Pas de persistance de mon image dans le Canvas de ma fiche [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Pas de persistance de mon image dans le Canvas de ma fiche
    Bonjour à toutes et à tous,

    J'ai une image que j'ai mise dans un fichier ressource et que je veux afficher sur une fiche.

    Si j'utilise simplement le Canvas de la fiche, mon image s'affiche, mais elle n'est pas persistante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Canvas.Draw(100, 100, MonBmp); // Pas de persistance.
    Si je dépose sur ma fiche un TImage et que j'utilise le Canvas de ce TImage, mon image s'affiche et est persistante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Canvas.Draw(100, 100, MonBmp); // Il y a persistance.
    Un TPaintBox ou un TPanel n'assurent pas non plus la persitance.

    Pourquoi ?

    Cordialement.

    Pierre.

  2. #2
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    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 384
    Points : 9 753
    Points
    9 753
    Par défaut
    Je vais surement dire une bêtise, mais quand ta fiche va se redessiner pour se mettre à jour, dans son Paint, il n'y a pas ton image, et donc elle va disparaître.

    Tu devrais peut-être mettre ton canvas.draw dans le OnPaint de ta fiche pour que cela devienne persistant.

    Par contre, si tu places un TImage, celui-là sera redessiner par le Paint de ta fiche, puisque c'est un composant de ta fiche.
    Pareil pour le TPanel ou le TPaintbox, dans leur Paint, il n'y a pas le dessin de ton image, donc elle est effacée à chaque fois que la fiche est réactualisée.

    Mais, je ne suis pas sûr de ce que je dis. Il faut tester, je pense.

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

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 699
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 699
    Points : 13 138
    Points
    13 138
    Par défaut
    C'est tout à fait ça, déplacer le dessin dans OnPaint.

    Et juste après le chargement de MonBmp tu demandes un rafraichissement immédiat par Invalidate qui forcera OnPaint la première fois. Ensuite ça se fera automatiquement sur chaque demande du système.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    pour être complémentaire voici ce qu'écrivait l'excellent Paul TOTH dans un ancien message :
    TPanel est un objet Windows qui possède son propre Handle et son propre Canvas
    TPaintBox est une zone rectangulaire à l'intérieur de son parent (un TPanel par exemple), c'est une sorte de clipping sur son parent
    TImage c'est pas loin d'être un TPaintBox sauf qu'il dessine une image, donc le dessin est persistant.
    En effet, un canvas est à l'écran ce que le crayon est au papier, un moyen pour dessiner. Si on ne veux pas refaire le dessin à chaque "OnPaint" il faut stocker le résultat dans une image qu'on recalculera si nécessaire (redimensionnement par exemple). Par contre les images prennent de la mémoire, donc c'est une question de balance entre consommation CPU (complexité du dessin) et consommation mémoire (taille de l'image).
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Je vous remercie tous les trois (quatre en comprenant Paul TOTH) pour ces éclaircissements.

    Je pense que j'avais bien compris (soupçonné) que seul le TImage mettait en mémoire le bitmap pour le reproduire ensuite.

    Ce que je ne comprenais pas est pourquoi cela n'était pas fait sur chacun des composants (le TForm y compris).

    L'ancien message de Paul TOTH apporte l'éclairage qui me manquait.

    Cordialement.

    Pierre.

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

Discussions similaires

  1. j'arrive pas a afficher inserer une image dans mon interface
    Par safa baccouche dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/09/2009, 05h04
  2. je n'arrive pas a faire apparaitre mon texte dans borland
    Par 8L4CK8ird dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/11/2007, 17h25
  3. ne veut pas d'espaces entre les images dans une cellule
    Par cortex024 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 07/12/2006, 15h30
  4. [HTML] Centrer mon image dans ma table
    Par avogadro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/07/2006, 02h05
  5. Persistance d'une image dans un JPanel
    Par Robiwan59 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/02/2006, 19h20

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