在状态栏分成多个PANEL时,PANEL文字显示问题!(50分)

  • 主题发起人 主题发起人 nuaa.cs.zhanglu
  • 开始时间 开始时间
N

nuaa.cs.zhanglu

Unregistered / Unconfirmed
GUEST, unregistred user!
在状态栏中,分成多个PANEL时,对某个PANEL的文字需要频繁更换时,只显示最后的文字,
中间的文字均不出现,该如何解决?
 
频繁更换又不出现,那你倒什么麻烦,直接把最后的换了不就完了。
//你要是愿意,在后台给它换上一万次也可以。
 
我不太明白你这个问题的意思,你能说详细一点吗?
 
StatusBar.Panels.Text :='...';
 
可能太频繁了吧,或者没刷新,试一下
APPLICATION。PROCESSMESSAGE
 
不只是TPanle,StatusBar也是这样,我想这是因为太快了吧。你是想表现这个过程是吧?
我也想解决这个问题。
 
直接賦予其質,便可蓋掉前一個值啦。

如果不想在過程中看見那些被蓋掉的值,那便要注意編程中是否有
呼叫 Application.processMessages.

如果想看見在過程中的值,便直接使用 StatusBar.repaint 或是
Application.processmessages 讓其刷新。
 
大概是你把Panels.Width的值错了吧。StatusBar是自动更新的,
不应该出现你那种问题。建议按如下方法试试:

Panels.Width := Length(Str);
Panels.Text := Str;
 
补充一句: 上述代码应作为With 语句的执行语句;Str为你想写的字符串,完整表述如下:
with StatusBar1 do begin
Panels.Width := Length(Str);
Panels.Text := Str;
end;
 
文字更换后立即Refresh就可以了。
 
Panel.update就行了啊。试试。
 
你是不是想做成跑马灯的效果?还是别的?
 
多人接受答案了。
 
后退
顶部