2010-11-08 105 views
1

我有一個概率,我的TChart附帶的「標記」隱藏在酒吧後面......我添加了標記,並將它自己繪製在酒吧後面。任何方式把它放在前面?我希望有人可以幫助me..thanks在條形圖前顯示標籤

alt text

+0

如果您還可以讓我們知道您用於圖表的哪個組件,這將非常有幫助。 – iamjoosy 2010-11-08 14:02:39

回答

4

,我不知道是你的圖巴實例化什麼課,但我知道的TLabel是TGraphicControl後裔。從TGraphicControl降序的控件沒有任何窗口句柄;因此,他們的父母負責將其繪製在自己的畫布上。

當您在窗體上放置標籤時,窗體就是您的標籤的父級,並將在其自己的畫布上繪製標籤。如果刪除一個窗口控件(控件派生自TWinControl類,例如TButton或TProgressBar),它們將在父畫布上處理它們自己的圖形。這意味着,TGraphicControl的後代將始終在具有相同父窗口的TWinControl類的後代後面繪製。

最簡單的解決方案是使用TStaticText,它提供與TLabel相同的功能,但是是TWinControl後代。

也可能有其他解決方案,例如:您可以在窗體上放置一個面板,然後將該標籤添加到面板,然後將面板放在前面,以將其顯示在圖形欄上方。當您將標籤添加到面板時,其父項將被設置爲該面板控件,並且該面板將負責繪製標籤;或者將圖形欄設置爲標籤的父級;或者派生一個新的圖形欄類,並處理其Paint方法直接在其畫布上繪製文本。

+2

TStaticText是一個真正的TWinControl,可以用來代替TLabel。 – gabr 2010-11-08 08:35:54

+0

@gabr;是的,謝謝!我幾乎忘了StaticText。 – vcldeveloper 2010-11-08 09:07:20

+0

@gabr:完成;-) – vcldeveloper 2010-11-08 09:18:20

0

好的,現在我明白了什麼是錯的。你有三個小節系列,但第三個系列是從第二個小節中劃分出來的。填充你的3條系列後,嘗試:

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

這應該重新繪製標記(雖然未經過測試)。