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 :

vider un Canvas


Sujet :

C++Builder

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Par défaut vider un Canvas
    Bonjour tout le monde:

    Voici mon problème. J'utilise un canvas, pour représenter un organigramme...
    J'ai créé des fonctions pour zoomer sur l'organigramme et déplacer des "blocs".
    Ce sont les traits reliant les blocs quis sont dessinés à l'aide du Canvas.

    Je redessine donc les liaisons entre mes blocs lors que je zoom ou déplace un bloc. Le prbm c'est que les anciens traits ne sont pas effacés et que du coup mon shéma et tout pas bo .

    Je voudrais savoir si il existe un moyen de faire un flush ou un empty sur un canva afin qu'il redevienne vierge.

    Par ailleurs, si il y a une méthode plus propre ou plus facile pour dessiner des traits entre des éléments d'un organigramme, je suis preneur aussi.


    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Pour information, tu travailles sur le Canvenas de quel composant?
    Un Timage, TBitmap ... ?

    Merci

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Par défaut
    Une méthode parmis d'autres :

    Canvas->FillRect(Canvas->ClipRect);

    après avoir pris soin d'initialiser le brush avec la couleur de fond souhaitée par ex. :
    Canvas->Brush->Color=(TColor)RGB(255,255,255);

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    ca marche, sauf que le Canvas n'est pas à proprement parlé "vide", il est de couleur uni, tout dépend de ce que veut traiangueul.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Par défaut
    En fait c'est un TControlCanvas auquel j'ai associé un TPanel.

    Je pense avoir reussi à obtenir l'effet souhaité en appelant la méthode PaintTo de ce panel dans le Canvas que je me suis créé lors d'un zoom ou d'un déplacement. Cela a pour effet de redessiner le Panel dans le canvas ce qui (visuelement en tous cas) vide mon affichage. Ensuite j'ai plus qu'a redessiner ce qui m'interresse.

    C'est peut etre pas la méthode la plus propre mais ca a l'air de fonctionner...
    En tous cas ca me va pour l'instant...

    Merci pour vos réponses...

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

Discussions similaires

  1. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  2. vider un timage
    Par gIch dans le forum Composants VCL
    Réponses: 2
    Dernier message: 23/08/2002, 23h58
  3. Vider le buffer du clavier
    Par flavien tetart dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 12/07/2002, 08h35
  4. Comment vider un dossier ?
    Par Zinoc dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/06/2002, 14h14
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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