A.有一些图片,我需要循环播放(使用Image装入)
B.在图片的底部,我实现滚动字幕(使用Panel+Label+Time控制),使用TRzMarqueeStatus同样如此
C.当我装入图片的时候,Label就会暂停一下(不连续)请教如何能才能消除?或者有其他什么更好的建议。谢谢我的一些调试代码如下:说明:
1、Panel,Form使用双缓冲
2、程序在目录机器上运行,目标机器配置有点低。(研华工控主板,主要做嵌入式用的)
3、目标系统为Winxp,256M,C400
{控制Lable滚动,Timer时间间隔为10ms}
procedure TForm1.ScrollTimer(Sender: TObject);
begin
Label1.Left:=Label1.Left-1;
if Label1.Left<(Panel1.Left-Label1.Width) then
Label1.Left:=Panel1.Width;
end;{间隔1秒随即装图片}
procedure TForm1.LoadPicTimer(Sender: TObject);
var
picName:String;
begin
PicName:=FilePath+format('pic%0.4d.jpg',[Random(21)]);//+'.jpg';
if FileExists(PicName) then
{ ImageEnView1.IO.LoadFromFile(PicName); //使用ImageEnView一样抖动}
Image1.Picture.LoadFromFile(PicName);
end;
这句加上绘好多了
最粗显的方式是:提前装载图片文件,在切换时以内存数据。
我也使用Canvas画,TextOut.效果还是抖动。有没有什么方能使用滚动条进度独立出来,不受主程序影响。
你可以使用双重缓冲(double buffering),具体就是:先将绘制的内容画在bitmap上,再将bitmap覆盖到屏幕上。另外:
>有没有什么方能使用滚动条进度独立出来,不受主程序影响
你先前没说到这个问题。
这个需要使用多线程技术。
下面是以前做的关于双缓冲的例子。
http://topic.csdn.net/u/20070416/10/7ee9ec9a-589b-404d-bd3f-84ef0cd88d20.html