◆◆◆◆◆OpenPictureDialog预览GIF动画时出现严重闪烁!怎么解决?
编程环境:WinXP pro SP2, Delphi7.0为了使Image支持GIF我安装了GIFImage2.2 for Delphi5这个控件。 (这个版本在Delphi7下应该是不能正常使用的,不过按照一位高手的方法引用了Delphi5的一个线程单元后就能使用了)。安装后在D7中在对象观察器中为Image装入图片时打开的OpenPictureDialog就支持GIF了,可是我发现右面的图像预览小窗口在预览GIF动画时有非常严重的闪烁。但是把GIF图像载入Image中后,在运行时并不闪烁。我想是不是因为没开双缓冲的原因,于是修改了TOpenPictureDialog(因为一些私有域无法访问,不能继承只能修改),添加FPicturePanel.DoubleBuffered := True;(FPicturePanel是个TPanl)运行,这回预览窗口不闪了,可是又有问题出现了,在点击其它GIF图片时,新图片显示了而原来的图片并没有被抹去(表现为静止的背景),我晕。察看VCL源码,主要在TWinControl.WMPaint和TWinControl.WMEraseBkgnd中访问了DoubleBuffered这个属性。在TWinControl.WMEraseBkgnd中如果DoubleBuffered为True则不会调用FillRect,我想那我就自己调用吧,结果还是那样,然后我又试验了N种办法都没行。不说了,郁闷!◆◆◆◆◆我就是想自定义一个TOpenPictureDialog,使其在预览GIF动画时右面的小预览窗口不闪烁,而且点击其它GIF图片时原图图像不会残留!怎么办????
编程环境:WinXP pro SP2, Delphi7.0为了使Image支持GIF我安装了GIFImage2.2 for Delphi5这个控件。 (这个版本在Delphi7下应该是不能正常使用的,不过按照一位高手的方法引用了Delphi5的一个线程单元后就能使用了)。安装后在D7中在对象观察器中为Image装入图片时打开的OpenPictureDialog就支持GIF了,可是我发现右面的图像预览小窗口在预览GIF动画时有非常严重的闪烁。但是把GIF图像载入Image中后,在运行时并不闪烁。我想是不是因为没开双缓冲的原因,于是修改了TOpenPictureDialog(因为一些私有域无法访问,不能继承只能修改),添加FPicturePanel.DoubleBuffered := True;(FPicturePanel是个TPanl)运行,这回预览窗口不闪了,可是又有问题出现了,在点击其它GIF图片时,新图片显示了而原来的图片并没有被抹去(表现为静止的背景),我晕。察看VCL源码,主要在TWinControl.WMPaint和TWinControl.WMEraseBkgnd中访问了DoubleBuffered这个属性。在TWinControl.WMEraseBkgnd中如果DoubleBuffered为True则不会调用FillRect,我想那我就自己调用吧,结果还是那样,然后我又试验了N种办法都没行。不说了,郁闷!◆◆◆◆◆我就是想自定义一个TOpenPictureDialog,使其在预览GIF动画时右面的小预览窗口不闪烁,而且点击其它GIF图片时原图图像不会残留!怎么办????
解决方案 »
- 急!!!做项目时遇到一个问题,请高手帮助!
- 在mdi主窗体中加一个image控件,在改变image的尺寸时如何刷新
- 如何得到listview中各个item中的colunmn的值
- 求delphi3.0下载地址,能down.200分
- 什么情况下image的onclick事件无法响应
- 请问如何获得当前cpu温度和使用率?
- 一个TDate类型数据如何得到他所在月的最大数
- 在delphi7的New Items对话框中的Multitier选项卡里如何没有MTS DataModule项?
- 金额小写转大写
- 众高手请深入的详解一下消息,句柄!(详细,详细再详细!,深入,深入,再深入!)
- 求全套Developer Express控件包 For Delphi7
- access数据库问题:如何在程序中设置和修改某一字段的默认值呢?
begin
DoubleBuffered :=True;
end;
http://home20.inet.tele.dk/tolderlund/delphi/还有RxGIF都看看