簡體   English   中英

Delphi彩色文本組件替換了TRichEdit以提高性能

[英]Delphi lines colored Text component replacing TRichEdit to improve performances

我目前在我的一個軟件(在Delphi 7中)中將TRichEdit用作“實時”事件日志查看器,最近我對我的軟件進行了介紹,而TRichEdit消耗了40%以上的軟件CPU時間。

我只想測試其他組件以比較性能,該組件必須具有:

  • 線着色(它可能是線語法顏色,因為不同的顏色線具有不同的前綴或HTML着色等)。
  • 輕松保存到文件功能(RTF或HTML)。
  • 免費或開源。
  • 好表現 甚至對於“大文件”(可能是200 Mo)作為查看器。

信息:我仍在看這篇文章,但對我來說卻沒有好的答案。

大約在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM