![](/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.