请求各位怎样在状态栏上显示滚动的文字(100分)

W

wywzx

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在状态statusbar上显示提示文字,想让文字从右向左滚动不知怎么实现。
 
用Timer作吧,在相同间隔读取文字然后变换后写回。
 
如果用Ttimer会太闪动
 
有两种方法:
一种是把statusbar.Panels[x]的style设为psOwnerDraw,然后在statusbar.OnDrawPanel里自己画。
另一种是在做一个增强的可以嵌入控件的statusbar,只要在Create加一句 ControlStyle:= ControlStyle + [csAcceptsControls];
就可以,然后嵌入一个可以滚动的控件。比如vcl_extrapack14里有一个可以滚动文字的控件。
 
谢谢你的回答
在statusbar.OnDrawPanel里自己画是怎么用的。 我不太理解,能说明白一点吗?
 
设置Timer的Interval为100看起来就是有些不舒服,不过程序运行中应该是可以接受的。
我试了试感觉还行。要不就嵌入一个可以滚动的组件或者使用第三方控件。
procedure TForm1.Timer1Timer(Sender: TObject);
//Timer1 Interval 为 200
var
i:Integer;
begin
s:=Copy(s,2,Length(s)-1)+Copy(s,1,1); //向左滚动
// s:=Copy(s,Length(s)-2,1)+Copy(s,1,Length(s)-1); //向右滚动
StatusBar1.SimpleText:=s;
end;
 
谢谢各位!
 
我说错了,不是在OnDrawPanel里画,是在OnDrawPanel里得到要画的panel的Rect,然后
在timertimer里对statusbar.cavas画。不过比较麻烦
 
顶部