-
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
-
Salut,
Pour information, tu travailles sur le Canvenas de quel composant?
Un Timage, TBitmap ... ?
Merci
-
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);
-
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.
-
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...:mouarf:
En tous cas ca me va pour l'instant...
Merci pour vos réponses...;)