2014-11-05 61 views
1

如何更改特定dxStatusBar1.Panel的文本顏色? dxStatusBar是Devexpress的VCL組件。更改特定dxStatusBar1.Panel中文本的顏色

+0

參考:https://www.devexpress.com/Support/Center/Question/Details/Q97946 – 2014-11-05 23:41:02

+0

那是7年前! – user3927897 2014-11-05 23:44:21

+0

是的,這應該使它更加相關,那就是這種能力增加了7年。另外爲什麼我不只是把它作爲答案。而爲了記錄,我從未使用過DevExpress。 – 2014-11-05 23:46:20

回答

1

面板有一個OnDrawPanel事件。可能最簡單的方法就是勾選該事件,然後按照需要繪製面板。事情是這樣的:

procedure TFormTest.dxStatusBar1Panels1DrawPanel(Sender: TdxStatusBarPanel; 
    ACanvas: TcxCanvas; const ARect: TRect; var ADone: Boolean); 
begin 
    Sender.PanelStyle.Painter.FillBackground(dxStatusBar1, Sender, ACanvas, ARect); 
    ACanvas.Font.Color := clBlue; 
    ACanvas.DrawText(Sender.Text, ARect, cxSingleLine or cxAlignVCenter or cxAlignLeft); 
    ADone := True; 
end; 

您應該添加一些檢查,以確保畫家實際上是分配的,在它沒有被分配則需要自己繪製背景的情況下。

以下是輸出示例。

Colored Panel Picture

+0

我想這樣你改變它的整個狀態欄。和使用皮膚一樣。 – user3927897 2014-11-06 01:41:48

+0

@ user3927897這是針對特定面板的OnDrawPanel事件,而不是整個狀態欄。 – Graymatter 2014-11-06 02:02:41

0

最簡單的方法:

dxStatusBar1.Panels [0] .PanelStyle.Font.Color:= clRed;