delphi 缓冲画图(内存画图)解决画图闪烁问题

2008-04-10 02:56:48来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

很多朋友在做绘图程序的时候,往往出现屏幕不停刷新产生闪烁的问题,这里就告诉大家一个解决办法,缓冲绘图。如果有人是用取反画图解决这个问题,那么在画直线的时候容易出现斑点,效果不是很好。如果是图片很大,那么缓冲画图是解决的好办法。

在网上搜索一下内存绘图,或者缓冲绘图,会有很多技术文章,不过都是以vc或者java为主,很少有pascal的代码例子。不过原理都是一样的,大家可以参考他们的文章。我会在最后放上转载的vc缓冲画图的文章。:)感谢原作者。

Delphi中函数调用比较方便。

OldBmp, BufBmp是TbitMap

//画图方法:

procedure TChart.Draw(aCanvas: TCanvas);

begin

{把要画的操作放在这里}

end;

在你要画的地方用如下代码把内存中画好的内容放到你要显示的组件的canvas上,这里就是canvas:

Draw (BufBmp.Canvas);//Draw方法就是上面那段代码

bitblt(self.Canvas.Handle, 0, 0, ClientWidth, ClientHeight,

self.BufBmp.Canvas.Handle, 0, 0, SRCCOPY);//拷贝函数


如果要用多个缓冲,用BufBmp.Assign(OldBmp);做内存中图片内容复制,然后在bufbmp中做进一步操作,再贴到显示区。

简单吧:)。

怎样在内存缓冲中画图  作者 相生昌

关键字 内存缓冲,画图
原作者姓名 相生昌

介绍
用双缓冲进行绘图可解决在VC中绘图时的闪烁现象

正文
用vc做程序,如何画图是一个大家都很关心,但是却感到很难以理解的问题,因为在mfc的封装之下,没有现成的画图函数供你直接调用,像vb等等里面直接来个point之类的,常常让人感到无从下手。这两天帮人解决了一个用内存缓冲画图的问题,顺便也就谈谈这些东西,也算是总结。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在网络上进行摄像头视频通讯

下一篇:Delphi2005学习笔记3——数组参数的研究