在条形图前面显示标签

时间:2010-11-08 07:10:12

标签: delphi

我有一个问题,我在TChart附带的“标记”隐藏在栏后面......我添加了标记并将它自己拉到了栏后面。有什么办法把它带到前面吗?我希望任何人都能帮助我......谢谢

alt text

2 个答案:

答案 0 :(得分:4)

我不知道你的图形栏实例化了什么类,但我知道TLabel是一个TGraphicControl后代。从TGraphicControl下降的控件没有任何窗口句柄;因此,他们的父母负责在自己的画布上绘制它们。

当您在表单上放置标签时,表单是标签的父级,并将在自己的画布上绘制标签。如果删除一个窗口控件(从TWinControl类派生的控件,例如TButton或TProgressBar),它们将在父画布上处理它们自己的绘图。这意味着,TGraphicControl的后代将始终在具有相同父窗口的TWinControl类的后代之后绘制。

最简单的解决方案是使用TStaticText,它提供与TLabel相同的功能,但是是TWinControl后代。

也可能有其他解决方案,例如:您可以在表单上放置一个面板,然后将标签添加到面板,然后将面板放在前面,将其显示在图形栏上方。将标签添加到面板时,其父级将设置为该面板控件,面板将负责绘制标签;或者将图形栏设置为标签的父级;或者派生一个新的图形条类,并处理它的Paint方法直接在画布上绘制文本。

答案 1 :(得分:0)

好的,现在我明白了什么是错的。你有三个酒吧系列,但第三个是从第二个系列中抽出标记。填写3栏系列后,尝试:

barseries2.marks.visible:=False;
barseries2.marks.visible:=True;

这应该重新标记标记(尽管未经过测试)。