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

C++Builder Discussion :

Le canvas s'efface


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par d�faut Le canvas s'efface
    Bonjour,
    j'utilise les fonctions de dessin sur le canvas d'une forme.
    Mon probl�me est simple: quand je reduit la fen�tre et que je la rappel, mes dessins sur le canvas ont disparus... Ce comportement est surement du � l'appel de la m�thode Refresh() de la form
    Comment faire pour garder mes jolies dessins sur le canvas de la form??

    Merci pour votre aide.
    Cordialement

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Il faut utiliser un bitmap sur le quel on dessine en m�me temps que sur la form.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Graphics::TBitmap *Bitmap = new Graphics::TBitmap; //en global
    Dans le constructeur de la form, on peut fixer des dimensions maximales pour le bitmap :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Bitmap->Width = Screen->Width;
    Bitmap->Height = Screen->Height;
    Dans la OnPaint (et peut-�tre aussi dans la OnResize... il faudra tester), il suffira donc de faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Canvas->Draw(0, 0, Bitmap); //Dessine le bitmap sur la form
    A plus !

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Par d�faut
    Ce que j'ai toujours fait:
    - OnPaint d�clenche un timer,
    - le timer d�clenche � son tour le rafra�chissement du dessin.
    Le timer ajoute simplement un retard entre l'ex�cution de la m�thode OnPaint et le rafra�chissement de la figure. Sans celui-ci �a ne marche pas.
    La m�thode de Henderson ci-dessus a toutefois l'air bien plus propre.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Par ailleurs, il est toujours possible d'aller un peu plus loin dans la mod�lisation de primitives
    graphiques � l'aide de classes tr�s simples.
    Dans ce cas, c'est l'ensemble des m�thodes de dessin propres � chaque objet qui fera �merger
    le dessin. L'avantage �tant bien �videmment de pouvoir agir sur chaque objet graphique qui aura
    �t� ajout� � l'ensemble.

    A plus !

    Eventuellement consulter le travail de JEG :

    http://www.developpez.net/forums/viewtopic.php?t=18082

  5. #5
    CGi
    CGi est d�connect�
    Expert confirm�
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    D�tails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par d�faut
    Citation Envoy� par Walm
    j'utilise les fonctions de dessin sur le canvas d'une forme.
    Mon probl�me est simple: quand je reduit la fen�tre et que je la rappel, mes dessins sur le canvas ont disparus...
    Il faut dessinner sur l'�v�nement OnPaint.
    En g�n�ral c'est suffisant.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par d�faut
    Bonjour,
    j'ai utilis� la technique de henderson.
    Merci � vous pour votre aide.

    Cordialement

    Walm

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Effacer un Canvas avant de redessiner dessus
    Par Kwentin dans le forum Java ME
    R�ponses: 3
    Dernier message: 09/10/2006, 08h21
  2. Canvas : Effacer en gardant l'arri�re plan
    Par Julien_C++ dans le forum C++Builder
    R�ponses: 3
    Dernier message: 03/08/2006, 12h27
  3. R�ponses: 4
    Dernier message: 20/04/2006, 23h35
  4. [Tkinter].... Canvas: effacer un objet
    Par airod dans le forum Tkinter
    R�ponses: 1
    Dernier message: 23/01/2006, 12h55
  5. Effacer Canvas d'un TImage
    Par Franck26 dans le forum C++Builder
    R�ponses: 7
    Dernier message: 08/04/2005, 22h56

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