解决方案 »
- 求SQL语句
- devexpress问题
- 了解下现在大家用DELPHI开发网上应用用什么?WEBBROKE,INTRAWEB,ACTIVEX+MIDAS?
- COM初学者在编程中遇到了许多问题……,请COM类的高人们指点,谢谢啦!
- 往DLL动态库函数传送对象时出错
- 用Install Shield制作的安装程序在没装Delphi的机器上不能用,请大虾赐教!
- sql sever2000企业版跨网段不能访问(我通过命名管道成功一次,但突然断电(client),命名管道也不行了.具体情况如下:
- delphi中使用dll的问题!
- 有几个厉害的问题请教高手
- *TFP*前来接分!!过路者帮忙提前!About(如果有打印StringGrid和DBGrid的源程序请也给我一份)
- Delphi如何判断Windows系统是否安装了屏保,并获取屏保名称
- 请教interface引用问题
至于什么汉子英文,对于系统来说都是画(draw)的
还有汉字我怎么画啊?
不好意思,刚才没注意看,原来有OnDrawPanel事件,我来试一下,看行不行啊!!
大神这是它的OnDrawPanel事件,完全不知道怎么搞啊,还请明示!!
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
beginend;
然后给你需要自绘的panle的属性面板中把style属性设置为psOwnerDraw,然后就可以在StatusBar的OnDrawPanel事件中以你喜欢的方式绘制文字procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
begin
with StatusBar.Canvas do
begin
case Panel.ID of
0: // 第1个panel
begin
// 设置字体颜色
Font.Color := clMaroon;
end;
1: // 第2个panel
begin
// 设置字体颜色
Font.Color := clMaroon;
end;
//N:.... 第N个panel
end;
// 绘制文字
TextOut(Rect.Left + 1, Rect.Top + 2, Panel.Text);
end;
end;
谢谢大神,我也搞好了!之前我在纠结const Rect : TRect这个形参我要怎么给实参,还以为TStatusBar中有这个属性,结果还是自己定义了一个TRect类型的变量,再传过去的,不知道是不是这样做的?
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
begin
with StatusBar.Canvas do
begin
case Panel.ID of
0:
begin
Brush.Color := clYellow; // 黄色画刷
FillRect(Rect); // 画背景 Font.Color := clMaroon; // 设置颜色
Font.Style := [fsBold]; // 粗体style
// 绘制文字
TextOut(Rect.Left + 1, Rect.Top + 2, Panel.Text);
end;
1:
begin
// 设置字体颜色
Brush.Color := clBlack; // 黑色画刷
FillRect(Rect); // 画背景 Font.Color := clWhite; // 设置颜色
Font.Style := [fsBold, fsItalic]; // 粗体+斜体style
// 绘制文字, 这里可以修改原来的文字
TextOut(Rect.Left + 1, Rect.Top + 2, Panel.Text + '(我是动态追加的文字)');
end;
// 自后一个panel不处理,保持原样
end;
end;
end;