Comment afficher un message sur un Tchart?

Résolu
cs_seni Messages postés 24 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 3 novembre 2005 - 18 sept. 2004 à 02:40
cs_seni Messages postés 24 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 3 novembre 2005 - 29 sept. 2004 à 21:37
Bonjour,
je voudrais afficher une string a un endroit precis de mon graph en passant en parametre l'abcisse et l'ordonnee par ex. J'ai essaye la fonction :
AddXY(X,Y:double;label:string,color:Tcolor):integer;
mais elle ne marche pas.
si qqun a une idee....
merci

6 réponses

DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
22 sept. 2004 à 13:10
En fait c'est tout simple :
chart1.Canvas.TextOut(Series1.CalcXPos(5),Series1.CalcyPos(5),'Mon label');
c'est un exemple pour le 6° point de la série (c'est à dire n°5 sachant que le premier porte le n°0)

le coin sup-gauche du label correspond au point choisi, tu n'as qu'à décaler ton label pour le mettre ou tu veux, par ailleurs tu peux rendre le label transparent par la propriété Brush.Style:=BsClear

un exemple avec décalage du label et label transparent :
chart1.canvas.Font.Color:=clred;
     chart1.canvas.Brush.Style:=bsclear;
     chart1.Canvas.TextOut(Series1.CalcXPos(5)+10,Series1.CalcyPos(5)-15,'Number 5');


DrJerome ou JROD ;)
3
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
22 sept. 2004 à 13:25
exemple :
procedure TForm1.Chart1AfterDraw(Sender: TObject);
var
NumeroPoint:integer;
begin
     NumeroPoint:=5;//je prends le numéro 5 en exemple

     if Series1.Count>=NumeroPoint then
     begin
     chart1.canvas.Font.Color:=clred;
     chart1.canvas.Font.Size:=8;
     chart1.canvas.Brush.Style:=bsclear;
     chart1.Canvas.TextOut(Series1.CalcXPos(NumeroPoint)+10,Series1.CalcYPos(NumeroPoint)-15,'Number '+inttostr(NumeroPoint));
     end;
end;


Et tu peux Zoomer dessus...ça marchera aussi

DrJerome OU JROD :big)
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
18 sept. 2004 à 09:04
La méthode AddXY sert à ajouter un couple de valeur à une série.

Pour écrire directement sur la surface de dessin du composant TChart, il faut utiliser sa propriété Canvas et sa méthode TextOut.
Ex : Chart1.Canvas.TextOut(100, 200, 'Terminé !');
Regarde l'aide en ligne sur la propriété Canvas du composant TChart et tu trouveras de nombreuses méthodes.
May Delphi be with you
0
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
19 sept. 2004 à 09:16
Je pense qu'il veut placer un texte par rapport aux coordonnées d'un point de série de sa courbe...ce qui est plus dur puisque ça n'a pas été prévu à la base (apparemment)

Il faudrait donc calculer ? (En plus il y a les zooms !)

Bon p'têt en fouillant bien, on trouvera quelque chose...

DrJerome
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_seni Messages postés 24 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 3 novembre 2005
22 sept. 2004 à 06:40
Merci pour vos reponse, j'ai essaye la fonction : Chart1.Canvas.TextOut(10, 10, 'Hello world!');

mais pour qu'elle fonctionne il faut l'utiliser dans l'evénement OnAfterDraw :
procedure TForm1.Chart1AfterDraw(Sender: TObject); 
begin 
  Chart1.Canvas.TextOut(10, 10, 'Hello world!'); 
end; 

le seul pb qu'il me reste est de caster un Double en integer, si qqun a une idee.... :)
0
cs_seni Messages postés 24 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 3 novembre 2005
29 sept. 2004 à 21:37
je suis desole pour le retard, j'ai qques pb avec internet, merci pour les reponses!!!
0
Rejoignez-nous