Dessin sur un bitmap

jlg75 Messages postés 28 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 7 janvier 2012 - 2 janv. 2002 à 11:00
youcef413 Messages postés 1 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!!)

6 réponses

fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
2 janv. 2002 à 13:10
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
0
jlg75 Messages postés 28 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 7 janvier 2012
2 janv. 2002 à 16:30
Je te remercie, je vais mettre ta methode en pratique. :)

a + jlg75
0
PhGORMAND Messages postés 54 Date d'inscription jeudi 3 janvier 2002 Statut Membre Dernière intervention 20 juillet 2006
3 janv. 2002 à 11:07
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/
0
jlg75 Messages postés 28 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 7 janvier 2012
5 janv. 2002 à 10:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
5 janv. 2002 à 11:00
sans prob, il suffit de faire un
PaintBox.canvas.draw(0,0,Machin);
kan tu dessine :-)
0
youcef413 Messages postés 1 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 29 février 2008
7 mars 2008 à 13:51
please can you help me
pleaseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
0
Rejoignez-nous