SxProg
Messages postés1Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention17 septembre 2008
-
17 sept. 2008 à 14:26
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 2009
-
18 sept. 2008 à 09:27
Bonjour à tous!
Je developpe une application sous Delphi win32 qui permet d'éditer un PV de test à partir d'un fichier de mesure en .xml. Jusqu'ici tout va bien, et je dirais meme plus j'ai presque finis. Il ne me restent qu'un point à finaliser (enfin deux mais le second je pense que c'est une "boulette" de ma part mais je ne sais pas ou...).
Ne trainons pas plus en palabre, et rentrons dans le vif du sujet. J'utilise donc un graphique TChart dans lequel j'ai plusieurs courbes afficher: 3 courbes de mesures et 2 courbes de gabarit. Le problème intervient sur cette dernière. J'arrive à afficher mes 2 courbes (valeurs positives et négatives). Cependant je n'affiche qu'une seule légende et j'aimerais donc que mes deux courbes est le meme "style" (carré, rond, triangle....peut importe la couleur).
Mon code, que j'ai largement simplifier pour une meilleure compréhension , est le suivant:
for i := 0 to 5 do Form1.Chart1.Series[i].Clear;
for Cptcourbe := 0 to NbCourbe do //Compteur du nombre de courbes
begin
for CptMesure := 0 to 10 do //compteur du nombre de mesures
begin
ValeurX := Cpt; //Valeur en X
ValeurY := Mesure[CptCourbe][CptMesure]; //Valeur en Y
Form1.Chart1.Series[Cptcourbe].AddXY(ValeurY,ValeurX,''); //Affectation des valeurs X et Y pour la série correspondante
if RechercheGabarit = 'Gabarit' then //Si la courbe est un gabarit
begin
ValeurY := - ValeurY; //Inversion de la valeur de Y
Form1.Chart1.Series[Cptcourbe+1].AddXY(ValeurY,ValeurX,''); //Affectation des valeurs X et Y pour la série suivante
end;
end;
if RechercheGabarit = 'Gabarit' then >>>>
end;
Nota: Peut etre que certains d'entre vous aurons remarquer que dans mon code, s'il y'a un gabarit et une courbe après, la courbe négative du gabarit est effacée. Partons du principe que ma courbe de gabarit est toujours la dernière.
La ou il y'a la pseudo flèche rouge (>>>>) j'ai tenté les possibilités suivantes, sans succès:
J'en appel donc aux lumières des genies de Codes-Sources pour solutionner mon problème. Je suis sacrément mal barré, je doit terminer mon projet pour....lundi dernier!
Je reste a votre disposition pour plus d'info!
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 18 sept. 2008 à 09:27
salut,
je suppose que tu utilise des TSeriesPointer series.
donc, je suppose que ton problème est que le chart.series[] returne des TChartSeries. Donc il te faut la transtyper TSeriesPointer avant de changer le TSeriesPointer.Style.
un tucs genre (pas compiler)
var
Sp, Sp2 : TSeriesPointer;
begin
....
if ( Form1.Chart1.Series[CptCourbe+1] is TSeriesPointer) then begin
SP := Form1.Chart1.Series[CptCourbe+1] as TSeriesPointer;
end else continue;
if ( Form1.Chart1.Series[CptCourbe] is TSeriesPointer) then begin
SP2 := Form1.Chart1.Series[CptCourbe] as TSeriesPointer;
end else continue;
sp2.style := sp.style;
PS: la prochaine fois, "j'ai tenté les possibilités suivantes, sans
succès" indique la cause de "l'echec" (erreur de
compilation/execution/mauvais resultat + copie du message)
Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.