cs_TouTSpeed
Messages postés72Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention30 août 2007
-
2 juil. 2007 à 14:20
cs_TouTSpeed
Messages postés72Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention30 août 2007
-
2 juil. 2007 à 16:01
bonjour j'aimerais que quelqu'un m'aide à résoudre un soucis !
voici mon code ( la form7 sert a afficher la courbe ! )
procedure TForm1.ButGraphClick(Sender: TObject);
var
point : array of Tpoint;
i:integer; // variable de boucle for
pixel:integer;
begin
with TableauAffichageChantiers do
begin
pixel:=5; // on commence au pixel numéro 5
setlength(pusat,12); // tableau de 12 points
//
le problème est ci dessus , si je met 12 rien ne s'affiche et si je met 13 la courbe s'affiche mais
le 13eme point est faux puisque je n'en ai que 12 !
//
for i:= 1 to 12 do
begin
point[i-1].X:=pixel;
point[i-1].Y:= 400-strtoint(cells[i,LIGCA+1]); // 400=hauteur de la form moins la valeur extraite // du tableau.Pour que la courbe soit en bas de la fiche .
procedure TForm1.FormCreate(Sender: TObject); // On renomme ces composants
var
ArrayOfPoint : array[0..11] of Tpoint;//Si tu as besoin que de 12 lignes autant le dire de suite. Puis on évite d'utiliser n'importe quoi comme nom de variable : un point est un type.
Index,pixel:Cardinal; //Bonjour les fuites mémoires.
begin
with TuDevraisEncorePrendreUnMotPlusLongCommeAntiConstitutionnellement do
begin
pixel:= 5; // on commence au pixel numéro 5
setlength(ArrayOfPoint,12); //Pusat c'est quoi ? Attention au code que tu passes tout speed
Initialize (ArrayOfPoint,12); // On initialise le tableau ca fait pas de mal
for Index: = 0 to 11 do //dans un tableau on commence toujours à zéro
begin
point[Index].X:=pixel;
point[Index].Y:= 400-strtoint(cells[Index+1,LIGCA+1]);
pixel:=pixel+35;
end;
With myGraphForm Do
Begin
Visible:=true;
SetFocus;
GraphImage.Canvas.Pen.Color := clBlue;
GraphImage.Canvas.Pen.Width := 3;
GraphImage.Canvas.PolyBezier(point);
GraphImage.Canvas.Refresh;
Finalize(ArrayOfPoint);//On libère la mémoire : tu es le roi des fuites mémoires toi nan ? end;
end;
end;
end.
Voila déja un code plus propre est plus digeste .
Normalement ca devrait etre bon à condition que toutes tes cellulues contiennent des valeurs.
cs_TouTSpeed
Messages postés72Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention30 août 2007 2 juil. 2007 à 15:10
il semble que j'ai trouver une partie de la solution, il faut multiplier l enombre de point a relier par 3 et ajouter 1 ! le seul soucis et le dernier point !
cs_TouTSpeed
Messages postés72Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention30 août 2007 2 juil. 2007 à 15:59
Merci de m'avoir répondu
j'ai trouver tout seul en faite
cela ne marche rpas a cause du fait que la fonction polybezier utilise un point de depart puis2 autres et un point de fin donc 4 , puis on reprend le dernier point et les 3 suivant!
donc choix possible
4 7 10 13 16 19 22 25 ....
peut etre que je me trompe mais en totu cas cela marche super bien comme cela !
voila mon code
désolé pour les fuite de mémoire je savais pas !
et pusat viens d'un bout de code qui ma permis de comprendre comment marche polybezier.
promis je vais suivre tes conseilles .merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?