快速更换图片

XXKKFF 2011-12-20 10:14:39
我在做一个抽奖程序, 在按下空格键前要不断地切换图片,
我用TImage的picture的loadfromfile来切换图片,但是发现图片显示得太慢了, 就是切换图片的时候会显示出窗口背景来了

有没有办法可以快速地切换到图片?
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
XXKKFF 2011-12-25
  • 打赏
  • 举报
回复
即使把图片都装进内存, 显示起来还是有闪烁

最后在FormCreate里加一句DoubleBuffered := true;搞定了
火龙岛主 2011-12-21
  • 打赏
  • 举报
回复
使用TList列表来处理,把图片先加入到TList中保存起来,动态切换的的时候,动态调用就可以了。
changsn 2011-12-20
  • 打赏
  • 举报
回复
手动创建几个image对象,启动的时候把图片就加载到对象里

然后再互相调用,貌似快点
右脚小拇指 2011-12-20
  • 打赏
  • 举报
回复
如果是固定的那几张。
一般是程序运行的时候把图片全部加载进来。放到内存或是合适的容器里
用的时候,直接从内存取。这样就快。
都先生 2011-12-20
  • 打赏
  • 举报
回复
ImgPhoto.Picture.Bitmap.FreeImage;
//ImgStream := TMemoryStream.Create;
ImgJPG := TJPEGImage.Create;
try
try
//LJP 不预读照片
with DM.qrExec do
begin
Close;
SQL.Clear;
SQL.Add('select Photo from PM_Staffer_T where PK_Staffer_ID=' + QuotedStr(DataSet.FieldByName(L_FIELD_YGBH).AsString)+' AND PK_Mine_ID='+QuotedStr(SystemParam.__MineID));
Open;
end;
if DM.qrExec.RecordCount > 0 then
begin
//解决报“JPEG error #53”错误。
ImgStream := TMemoryStream(DataSet.CreateBlobStream(DM.qrExec.FieldByName('Photo'), bmRead));
try
if ImgStream.Size > 0 then
begin
ImgJPG.LoadFromStream(ImgStream);
ImgPhoto.Picture.Bitmap.Assign(ImgJPG);
end
else
ImgPhoto.Picture.Assign(nil);
finally
ImgStream.Free;
end;
end;
DM.qrExec.Close;
except
end;
finally
ImgJPG.Free;
end;

你研究一下吧,我这个支持鼠标滚轮更换图片,那个速度也还比较快的

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧