J'ai un prob où ma "marque" qui vient avec TChart se cache derrière la barre ... J'ai ajouté les marques et elle se dessine derrière les barres. Un moyen de le mettre en avant? J'espère que tout le monde peut aider me..thanksAfficher l'étiquette devant le graphique à barres
Répondre
Je ne sais pas quelle classe est votre barre graphique instancié de, mais je sais TLabel est un descendant TGraphicControl. Les contrôles descendant de TGraphicControl n'ont aucun handle de fenêtre; par conséquent, leur parent est responsable de les dessiner sur sa propre toile.
Lorsque vous déposez une étiquette sur votre formulaire, le formulaire est le parent de votre étiquette et dessine l'étiquette sur son propre canevas. Si vous déposez un contrôle fenêtré (contrôles dérivés de la classe TWinControl, par exemple TButton ou TProgressBar), ils gèrent leur propre dessin au-dessus du canevas parent. Cela signifie que les descendants de TGraphicControl seront toujours dessinés derrière les descendants de la classe TWinControl avec la même fenêtre parente.
La solution la plus simple pour vous est d'utiliser TStaticText qui fournit les mêmes fonctionnalités que TLabel, mais qui est un descendant de TWinControl.
Il pourrait aussi y avoir d'autres solutions pour vous, par exemple: vous pouvez déposer un panneau sur votre formulaire et ajouter l'étiquette au panneau, puis amener le panneau à l'avant pour l'afficher au-dessus de la barre graphique. Lorsque vous ajoutez l'étiquette au panneau, son parent sera défini sur ce contrôle de panneau, et le panneau sera responsable du dessin de l'étiquette; ou vous définissez la barre graphique comme parent de votre étiquette; ou dériver une nouvelle classe de barre graphique, et manipuler sa méthode Paint pour dessiner le texte directement sur son canevas.
TStaticText est un vrai TWinControl et peut être utilisé à la place de TLabel. – gabr
@gabr; Oui merci! J'ai presque oublié de StaticText. – vcldeveloper
@gabr: Fait ;-) – vcldeveloper
Ok, maintenant je vois ce qui ne va pas. Vous avez trois séries de barres, mais la troisième dessine les marques de la seconde. Après avoir rempli votre série de 3 barres, essayez:
barseries2.marks.visible:=False;
barseries2.marks.visible:=True;
Ceci devrait repeindre les marques (non testées cependant).
Il serait vraiment utile si vous pouviez également nous faire savoir quel composant vous avez utilisé pour le tableau. – iamjoosy