Alors ce que je peux dire c'est que ça fonctionne mais par exemple sur une feuille avec 10 graph un coup il va m'en manquer 2 un autre coup 2 autres différent, un coup 3 et un autre coup aucun. J'ai fais des test sur Win98, 2000, XP et sur plusieurs imprimantes en A3 et A4 et avec Win2PDF. C'est la meme partout . Et qu'en je passe tout le code en débogage tout semble normal
Mes questions : Pourquoi ça merde aléatoirement ? Avez vous déja rencontrer ce problème ? pouvez vous m'indiquer comment le résoudre ou le contourner ?
goloa
Messages postés14Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention 7 septembre 2006 28 juil. 2005 à 17:36
"TMonGraph" correspond a un Tchart que j'ai paramétré.
StretchDraw est une méthode de Tcanvas :
procedure StretchDraw(const Rect: TRect; Graphic: TGraphic );
L'utilisateur de mon programme veut afficher 'n' mesures qui sont représentées dans les n TeeChart (1courbe par TeeChart). Quand il veut imprimer, il va passer dans ma boucle :
WITH Printer.Canvas DO
For i := 0 to n do
Tmp_Fic := ExtractFileDir(Tab_Param[i,2])+'\tmp_fic.bmp';
//Recherche de mon TeeChart n° "n"
graph := TMonGraph(pagedac_f.FindComponent('graph'+ IntToStr(i)));
//Sauvegarde de mon teechart dans un fichier
graph.SaveToBitmapFile(Tmp_Fic);
//Chargement de mon fichier image contenant l'image du teechart dans une variable
Img_Graph := Timage.Create(pagedac_f);
Img_Graph.Picture.LoadFromFile(Tmp_Fic);
//Positionnement du graphique sur le canvas de l'imprimante
//coeff_width = largeur du canvas de l'imprimante / largeur du canvas où j'affiche mon graphique
//coeff_height est la meme chose pour la hauteur
//Je libère a chaque fois les variables si je repasse encre dans la boucle elle seront recréées
Img_Graph.Free;
Deletefile(Tmp_Fic);
End;
End;
mon EndDoc viens apres le traçage de l'entetes et du pied de page
Ce que je ne comprend pas c'est que je passe "n" fois dans cette boucle et que sur ces "n" fois les graphiques vont bien être enregistrer dans le fichiers 'tmp_fic.bmp' j'ai fais les test et meme si ils ne passent passe pas à l'impression ils sont dans les fichiers donc pas de problème avec la fonction 'SaveToBitmapFile' Maintenant il faut que je test si le 'LoadFromFile' fonctionne correctement et surtout à tous les coups.
A mon avis il ne faut pas aller chercher d'erreur dans mon code puisqu'il fonctionne (Ok pas a tout les coups) mais je me pose des questions sur le buffer des imprimantes ou des chose du style.
la boucle est traversée a chaque fois c'est sur ! et en débogage ça passe aussi sur le stretchDraw...
Je pense que CptPingu parle de la fonction "Draw" je fais le test et je reviens à la charge
respect robustesse
Vous n’avez pas trouvé la réponse que vous recherchez ?