Bonjour à tous,
Plantons le décor !!
Je développe actuellement une classe qui me permet de charger x séries de données dans un TChart. Chaque série est en fait un type record complexe (type de la série, couleur, caractéristiques, ...).
Les données proviennent de tableaux dynamiques que j'ai alimenté au préalable.
Présentation du problème
je souhaiterai pouvoir afficher des marques de données personnalisées, pour chaque point d'une série de données créée dynamiquement.
Ce qui semble possible dans l'aide TeeChart avec l'événement OnGetMarkTest, mais je n'arrive pas à le faire fonctionner !
Exemple de code (extrait de la procédure AddSerie, qui me permet d'ajouter une série à mon objet Chart)
Commentaires (cf signet dans le code ci-dessus)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 procedure TMyChart.AddSerie(MySerie:TMySerie); var parcours_serie:integer; Serie:TChartSeries; begin //-- {TSLine} if MySerie.TypeSerie=TSLine then begin Serie:=TLineSeries.Create(FMyChart); Serie.ParentChart:=FMyChart; for parcours_serie:=low(MySerie.Data) to high(MySerie.Data) do begin *CF COMMENTAIRE CI APRES Serie.AddXY(StrToFloat(MySerie.Data[parcours_serie,1]),StrToFloat(MySerie.Data[parcours_serie,2]),'',MySerie.Color); Serie.OnGetMarkText(Serie,parcours_serie,'TEST ETIQUETTE'); end; end; //-- etc.. end;
1/La création de ma série de données ne pose pas de problèmes. Le code suivant fonctionne sans problème :
Les valeurs des abscisses X sont représentées par la 1ère colonne de mon tableau MySerie.Data.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Serie.AddXY(StrToFloat(MySerie.Data[parcours_serie,1]),StrToFloat(MySerie.Data[parcours_serie,2]),'',MySerie.Color);
Les valeurs des ordonnées Y sont représentées par la 2ème colonne de mon tableau MySerie.Data.
2/ L'affichage d'une marque personnalisée pour un point donné d'une série ne marche pas => violation d'accés
Le code suivant ne marche pas :
Ma question est assez simple : comment appeler correctement l'événement OnGetMarkText lorsque je créé mon objet série ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Serie.OnGetMarkText(Serie,parcours_serie,'TEST ETIQUETTE');
je séche, merci d'avance pour votre aide !
@
Partager