原创 Lazarus和Delphi中怎样修改状态栏内文字的颜色

2013-11-20 23:10 1865 22 22 分类: 消费电子

 

不管是在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;  
qq截图20131120230609.jpg
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
22
关闭 站长推荐上一条 /3 下一条