BIORYTHME

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 11 nov. 2004 à 17:36
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 15 nov. 2004 à 18:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27498-biorythme

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
15 nov. 2004 à 18:38
De plus, c' etait pour expliquer comment utiliser le Paintbox, parce qu' il me semble que Allantel ne connaissait pas l' evenement OnPaint.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
15 nov. 2004 à 18:37
Oui je sais, mais ça s' affiche tellement vite que c' est une solution sans trop changer le code ...
Sinon, le mieux c de dessiner sur un TImage.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
15 nov. 2004 à 18:05
Mais ça nécessite a priori un redessinage perpétuel... puisqu'un simple pixel qui se fait recouvrir force la courbe à être redessinée lorsque ce dernier réapparait. Ce n'est pas le cas avec le TImage puisque l'image est déjà mémorisée. Mais après tout, pourquoi pas.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
15 nov. 2004 à 12:48
Non, pas la peine: utilise l' evenement OnPaint du PaintBox comme je te l' ai expliqué plus haut
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
13 nov. 2004 à 13:14
Il ne faudrait pas dessiner dans des TPaintBox le graph qui est "à longue durée de vie", car un coup de fenêtre dessus et c'est fini. Sauf si le dessin est réactualisé en permanence. Le TPaintBox offre juste un espace graphique sans aucune mémorisation. Il faut plutôt dessiner dans un TImage.Picture.Canvas (et non TImage.Canvas) dans lequel on aura pris soin de créer un bitmap:

with MonTImage.Picture.Bitmap.Create do
begin
Canvas.Brush.Color:=clBlack;
Canvas.Pen.Color:=clWhite;
Canvas.Pen.Width:=1;
PixelFormat:=pf4bit; //16 couleurs max
Width:=MonTImage.Width;
Height:=MonTImage.Height;
end;
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
11 nov. 2004 à 17:36
Il y a du bon code, mais juste une remarque:
fait le calcul de ton biorythme et minimise l' application (ou fait passer une fenetre devant ton application), quand tu reviens sur ton programme, le dessin a disparu (ouai, c' est con)!
Alors, pour resoudre ça tu dois enregistrer les parametres necessaires au dessin (soit la date de naissance etc ...) dans des variables. Pourquoi? Pour que tu puisses dessiner selon ces parametres lorsque ton application en a besoin. Disons qu après avoir cliquer sur le bouton 'Analyse', je peux modifier la date du TDateTimepicker mais je verrais les courbes selon les derniers parametres que j' ai enregistré en cliquant sur le bouton 'Analyse'.
Ensuite, tout le tavail de dessin, doit etre executé dans le OnPaint de ton Paintbox. Et voilà!
PS: n' oublie pas de faire ecran.repaint; dans le OnCick du bouton.
Rejoignez-nous