热度 22
2013-11-20 23:10
1835 次阅读|
0 个评论
不管是在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 ,nRect); // 注意此处第三个形参是需要实参为TRect类型的,需要自己根据TStatusBar大小构造一个 end;