不管是在Delphi或Lazarus中状态栏内的文字在设计时是无法修改其颜色,字体大小等等字体属性的,只能使用其默认的字体属性!那么当我们不想用其默认的黑白颜色时,要怎样去修改呢?
下面说说修改的具体步骤,网上查阅方法基本上都是通过TStatusBar的OnDrawPanel事件对其进行重绘,因为在重绘事件中有Canvas属性,此属性里就具有相关的字体属性设置。由于网上只说了思路,具体实现起来对于新手来说可能还有些困难。下面是网上的原话:
首先:
确定Panels 的 Sytle 是否为:psOwnerDraw
其次:
在statusbar控件单击 ondrawpanel事件
写如下代码
StatusBar.Canvas.Font.Color:=clGreen; 改成自己所要的颜色
StatusBar.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Panel.Text);
我说说调用部分,直接上代码吧,好理解些!
var
nRect : TRect;
procedure TForm1.FormCreate(Sender: TObject);
begin
nRect.Left := 0; // 初始化矩形区域大小
nRect.Top := 198; // Record类型的变量不能在定义时直接赋初值,要单独引用其域进行赋值!
nRect.Bottom := 0;
nRect.Right := 0;
StatusBar1DrawPanel(StatusBar1,StatusBar1.Panels.Items[1],nRect); // 注意此处第三个形参是需要实参为TRect类型的,需要自己根据TStatusBar大小构造一个
end;
文章评论(0条评论)
登录后参与讨论