![](/img/trans.png)
[英]Delphi: Using TextHint in a multiline text component such as TMemo or TRichEdit
[英]Delphi lines colored Text component replacing TRichEdit to improve performances
我目前在我的一个软件(在Delphi 7中)中将TRichEdit用作“实时”事件日志查看器,最近我对我的软件进行了介绍,而TRichEdit消耗了40%以上的软件CPU时间。
我只想测试其他组件以比较性能,该组件必须具有:
信息:我仍在看这篇文章,但对我来说却没有好的答案。
大约在1996年查看TConsole / TColorConsole: http : //www.torry.net/authorsmore.php?id = 604
它不执行HTML,不执行RTF,但确实可以快速滚动彩色文本。 ;>
对于“实时”事件日志查看器,我建议使用VirtualTreeView 。 它能够处理几乎不受限制的行数,具有大量的自定义功能(如自定义着色和自定义绘图中的所有内容),支持unicode,并且即使列表中已有几百万个项目,其运行速度也非常快。 确实需要一些时间来了解一切的工作原理,但是一旦弄清楚了,就永远不会回头。 它甚至支持就地编辑(包括对每列的自定义控件的支持)。 每一项都是一条记录,可以保存您需要的任何数据(而不仅仅是要显示的数据)。 即使您有数百万个项目,也都支持增量搜索以及从代码中进行极快速的搜索,这无关紧要。
由于操作系统或组件本身施加了许多限制,因此我将避免使用任何类型的“标准”文本编辑组件。 我提到的唯一可以满足您大部分(如果不是全部)需求的组件-TRichView 。 我尝试过TSynEdit
,可以说它具有很多功能,但严重缺乏性能。
尝试VirtualTreeView,您将不会后悔。
也许您可以登录到clientdataset。 DBGrid允许您指定各种绘图选项,因此您可以基于可见线指定背景色。 ClientDataset可以轻松管理大量数据,并且网格只会绘制那些可见的行。
无论如何,如果您大量记录日志,则不断重绘日志记录组件将使应用程序变慢。 也许您应该通过将行缓存在临时日志中,并每隔几秒钟将它们批量添加到可见日志中来减少实时性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.