社区
GAME,图形处理/多媒体
帖子详情
PaintBox绘图,是否只能在主线程绘图?
hoskyloser
2011-09-02 10:28:37
我现在在做一个程序,是多线程处理数据,然后主线程在paintBox绘图,但是处理同步关系很难,我又不想使用Synchronize 因为使用这个方法其实也是在主线程绘图,然后再同步到子线程中。
而且子线程处理出来的数据非常大,如果Post到主线程的话会造成很大的内存申请,所以我想在子线程里面绘图,所以我想问子线程中是否可以绘图?因为在我印象中vcl只能主线程操作,请高手们帮帮忙!
...全文
193
12
打赏
收藏
PaintBox绘图,是否只能在主线程绘图?
我现在在做一个程序,是多线程处理数据,然后主线程在paintBox绘图,但是处理同步关系很难,我又不想使用Synchronize 因为使用这个方法其实也是在主线程绘图,然后再同步到子线程中。 而且子线程处理出来的数据非常大,如果Post到主线程的话会造成很大的内存申请,所以我想在子线程里面绘图,所以我想问子线程中是否可以绘图?因为在我印象中vcl只能主线程操作,请高手们帮帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lhy
2011-09-02
打赏
举报
回复
可以在子线程里在Bitmap里画好,然后Synchronize,贴到PaintBox上。
yaowenwen1234
2011-09-02
打赏
举报
回复
恩~严重同意LS
haitao
2011-09-02
打赏
举报
回复
子线程操作界面vcl,必须Synchronize
线程间的数据互访,倒是不必post吧,只要加了适当的互斥就行了
bdmh
2011-09-02
打赏
举报
回复
可以在子线程,传递canvas,注意同步和canvas的加锁
hoskyloser
2011-09-02
打赏
举报
回复
自己顶一下!来高手帮忙!
hoskyloser
2011-09-02
打赏
举报
回复
好吧 谢谢lhylhy 方向是有了,概念也清楚了,剩下就得靠自己了。结贴。
lhy
2011-09-02
打赏
举报
回复
[Quote=引用 8 楼 hoskyloser 的回复:]
如果不响应重绘的话,窗口被遮挡住,再露出来不就变成空白了?
[/Quote]
你在主线程再开个Bitmap,保留上次子线程Bitmap的图像,重绘的时候再贴一次就可以了。
hoskyloser
2011-09-02
打赏
举报
回复
还有就是如果主线程发重绘消息的话,会不会把整个界面弄成白白的了。。。。
hoskyloser
2011-09-02
打赏
举报
回复
Synchronize 这种方法我觉得很危险。
我现在一个线程计算数据,然后在一个窗口绘制这个数据,当我多开一个窗口时,需要向线程里增加一个object。当执行到Synchronize 方法时,同时开了一个窗口,这个时候因为主线程向子线程添加object时被锁住了,而Synchronize 方法又没有返回,造成了整个程序的死锁。
另外我可能多个object同时画图(多个object在一个线程内),那贴位图的方法就非常难控制了。
hoskyloser
2011-09-02
打赏
举报
回复
如果不响应重绘的话,窗口被遮挡住,再露出来不就变成空白了?
lhy
2011-09-02
打赏
举报
回复
[Quote=引用 6 楼 hoskyloser 的回复:]
回2楼 5楼 如果在子线程里面绘制,那么主线程响应重绘的话怎么办?
[/Quote]
我是说你在子线程里面自己开个TBitmap画图,然后Synchronize中将Bitmap的图贴到PaintBox上。
hoskyloser
2011-09-02
打赏
举报
回复
回2楼 5楼 如果在子线程里面绘制,那么主线程响应重绘的话怎么办?
Delphi_多
线程
实例.doc
Delphi_多
线程
实例,希望能给你的学习提供帮助
Delphi 桌面画图工具开发实战
本文还有配套的精品资源,点击获取 简介:Delphi是一个功能强大的Windows应用程序开发工具,它提供了直观的可视化界面和高效的编译器。本文介绍如何利用Delphi实现桌面画图功能,包括调用Windows API、使用GDI
绘图
函数、事件处理、多
线程
绘图
、
绘图
缓存、权限管理、撤销/重做功能、错误处理和用户界面设计等关键知识点。掌握这些知识点,可以帮助开发者创建一个功能完...
Delphi实现波形图绘制完整源码实例
Delphi 是一个历史悠久且功能强大的 RAD(快速应用开发)平台,广泛应用于 Windows 桌面应用程序的开发,尤其在图形界面构建方面具有显著优势。其核心图形库 VCL(Visual Component Library)提供了丰富的控件与
绘图
支持,使开发者能够高效地实现复杂的可视化功能。VCL 中的
绘图
功能
主
要依赖于TCanvas对象及其相关组件,如T
Paint
Box
TImage和TForm的On
Paint
事件,这些机制为波形图等动态图形的绘制提供了坚实基础。
Delphi动态数据曲线绘制实战教程
为了增强图表的可读性和美观性,我们还需要对曲线的样式进行定制,并添加图例以标识不同曲线。阶段说明需求分析明确可视化目标、支持的交互功能模块设计分离数据采集、
绘图
、交互模块开发实现逐步实现TCanvas
绘图
、曲线管理、交互控制测试优化多
线程
测试、内存泄漏排查、性能调优发布部署打包发布,配置安装脚本。
Delphi股票K线图绘制示例教程
阳线是K线图中最基本的图形之一,它代表在一个交易周期内,价格收盘高于开盘的市场现象。阳线的典型特征是实体部分呈红色或白色(颜色因图表设置而异),且通常实体部分下方有一根较短或不明显的下影线,上方有一根较长的上影线。在技术分析中,阳线代表多头力量强于空头,市场情绪偏向积极。一根强劲的阳线表明多方取得了显著的胜利,可能预示着未来价格上涨的可能性。Delphi作为一款强大的编程工具,它在快速应用开发(RAD)领域内占有不可忽视的地位。Delphi的开发优势
主
要体现在以下几个方面:快速的开发效率。
GAME,图形处理/多媒体
1,184
社区成员
14,330
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章