简单的 "双缓冲" 绘图的例子 - 回复 "TookiQ" 的问题
2021-04-30 23:59
274 查看
简单的 "双缓冲" 绘图的例子 - 回复 "TookiQ" 的问题
所谓双缓冲就是先画到内存画布(如: TBitmap), 然后再转帖到目的地.
譬如下面小程序:
procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 100; Color := clWhite; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Canvas.Pen.Color := Random($FFFFFF); Canvas.MoveTo(Random(ClientWidth), Random(ClientHeight)); Canvas.LineTo(Random(ClientWidth), Random(ClientHeight)); end;
改为双缓冲绘图可以是:
var bit: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 100; bit := TBitmap.Create; bit.Width := ClientWidth; bit.Height := ClientHeight; end; procedure TForm1.Timer1Timer(Sender: TObject); begin bit.Canvas.Pen.Color := Random($FFFFFF); bit.Canvas.MoveTo(Random(bit.Width), Random(bit.Height)); bit.Canvas.LineTo(Random(bit.Width), Random(bit.Height)); Self.Canvas.Draw(0, 0, bit); end; procedure TForm1.FormDestroy(Sender: TObject); begin bit.Free; end;
TookiQ 需要的是 GDI+ 的, 道理都一样.
相关文章推荐
- WCF揭秘——使用AJAX+WCF服务进行页面开发
- 使用WCF实现SOA面向服务编程—— 架构设计
- 如何用 GDI 绘制阴影文字 - 回复
- SOA面向服务架构——SOA的概念
- 如何用 GDI+ 高质量地缩放图片 - 回复
- 哪个企业网盘可以实现dwg在线预览?
- 痞子衡嵌入式:实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(无缓存)
- 基本的SQL语句
- 基于Vue+SSM+Mysql停车位预约停车场计费系统设计可升级SpringBoot
- vue.js基础还不会?——看这篇文章就够了
- KMP(梅开三度之数据结构详解版
- 2021年 Android 程序员真实的就业前景
- 【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
- BLE链路层信道选择算法浅析
- AE、VAE、Beta-VAE学习记录
- Java Case Interview
- 跨行转 IT 程序员 :新手该如何去学好编程?不要太随意了!
- macos clion 2021 C++远程开发
- 8个常用的python办公室自动化技巧,学会了同事都找你!
- SpringBoot 整合 redis 实现 token 验证