Dessin sur un bitmap

Messages postés
29
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
7 janvier 2012
- - Dernière réponse : youcef413
Messages postés
2
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
29 février 2008
- 7 mars 2008 à 13:51
J'ai commencé un petit prog de dessin pour mes débuts en DELPHI.
Je dessine sur un bitmap (feuille blanche pour l'instant),chargé dans une TImage. J'utilise les méthodes du Canvas (lineTo ...etc) pour dessiner.
Pb's:
1) couleur noir systématique (pen.color est ignoré)
2)image clignote à chaque dessin (le Pb disparait en utilisant une TPaintBox,mais perte du graphisme qd Windows decide de rafraichir la fenetre!!)
Afficher la suite 

6 réponses

Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
0
Merci
il faut mieu en effet utiliser un TPaintBox :)
pour résoudre ton problème , c simple :
il ne faut pas dessiner directement sur la TPaintBox, mais sur une variable Tbitmap
puis dessiner la variable sur le TPaintBox
déclarer en global :
var Machin:Tbitmap

dans FormCreate :
Machin := Tbitmap.create;

dans PaintBoxResize :
Machin.Height := PaintBox.Height;
Machin.Width := PaintBox.Width;

dans PaintBoxPaint :
PaintBox.canvas.draw(0,0,Machin);

puis kan tu dessine, ne dessine pas sur le canvas du TPaintBox mais sur le canvas de Machin

et vala

@+
Fabs
Commenter la réponse de fabiin
Messages postés
29
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
7 janvier 2012
0
Merci
Je te remercie, je vais mettre ta methode en pratique. :)

a + jlg75
Commenter la réponse de jlg75
Messages postés
54
Date d'inscription
jeudi 3 janvier 2002
Statut
Membre
Dernière intervention
20 juillet 2006
0
Merci
Désolé je ne suis pas tout à fait d'accord.
Utiliser un TBitMap pour dessinner c'est très bien, mais un TPaintBox c'est fait pour ça. Alors, le problème du raffraichissement du dessin doit être résolu de la façon suivante : Il faut utiliser la l'événement OnPaint du composant pour redessinner. Tu peux télécharger le composant TGraphique depuis mon site web, qui ilustre bien comment utiliser l'événement OnPaint pour dessinner. Salut A+.
http://philippe.gormand.free.fr/
Commenter la réponse de PhGORMAND
Messages postés
29
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
7 janvier 2012
0
Merci
Ta méthode marche impec, plus de clignotement et couleur prise en compte. Mais pb: qd on écrit sur le canvas du bitmat on dessine en aveugle, le dessin n'apparait qu'au resize. J'ai contourné cela en dessinant simultanémént sur le canvas du bitmap et du PaintBox (instructions écrites 2 fois!)...ça marche nickel visuellement mais ce n'est pas élégant!! Peut-on faire mieux?
A + jlg75
Commenter la réponse de jlg75
Messages postés
338
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
8 décembre 2009
6
0
Merci
sans prob, il suffit de faire un
PaintBox.canvas.draw(0,0,Machin);
kan tu dessine :-)
Commenter la réponse de fabiin
Messages postés
2
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
29 février 2008
0
Merci
please can you help me
pleaseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Commenter la réponse de youcef413