Цветные текстовые компоненты Delphi заменяют TRichEdit для улучшения производительности - PullRequest
2 голосов
/ 16 ноября 2011

В настоящее время я использую TRichEdit в качестве средства просмотра журнала событий «в реальном времени» в одном из моих программ (в Delphi 7), и недавно я профилировал свое ПО, и TRichEdit потребляет более 40% времени процессора.

Я просто хочу протестировать другие компоненты, чтобы сравнить характеристики, этот компонент должен иметь:

  • Line Coloring (это может быть цвет синтаксиса LINE, так как разные цвета строки имеют разные префиксы или HTML-раскраски и т. д.).
  • Функция Easy Save to file (в RTF или в HTML).
  • Бесплатный или Открытый исходный код.
  • Хороший перф. даже для «больших файлов» (может быть 200 Мо) в качестве средства просмотра.

Информация: я еще смотрю этот пост , но без хорошего ответа для меня.

Ответы [ 3 ]

3 голосов
/ 16 ноября 2011

Ознакомьтесь с TConsole / TColorConsole около 1996 года: http://www.torry.net/authorsmore.php?id=604

Он не работает с HTML, не поддерживает RTF, но довольно быстро прокручивает цветной текст.;>

2 голосов
/ 16 ноября 2011

Для просмотра журнала событий в режиме реального времени я бы рекомендовал использовать VirtualTreeView . Он способен обрабатывать практически неограниченное количество строк, имеет огромное количество функций настройки (таких как настраиваемая раскраска и произвольное рисование чего угодно и все), поддерживает юникод и работает очень быстро даже с несколькими миллионами элементов в списке. Требуется некоторое время, чтобы понять, как все работает, но как только вы поймете это, вы никогда не оглянетесь назад. Он даже поддерживает редактирование на месте (включая поддержку пользовательских элементов управления для каждого столбца). Каждый элемент - это запись, которая может содержать любые данные, которые вам нужны (а не только данные, которые вы хотите отобразить). Также поддерживается добавочный поиск, а также чрезвычайно быстрый поиск по коду, даже если у вас есть миллионы элементов.

Я бы не стал использовать какие-либо «стандартные» компоненты редактирования текста из-за множества ограничений, налагаемых либо ОС, либо самим компонентом. Единственный известный мне компонент, который может поддерживать большинство (если не все) ваших требований, уже упомянут - TRichView . Я попробовал TSynEdit и могу сказать, что у него много функций, но серьезно не хватает производительности.

Попробуйте VirtualTreeView, и вы не пожалеете об этом.

1 голос
/ 16 ноября 2011

Может быть, вы можете войти в клиентский набор данных. DBGrid позволяет указывать все виды параметров рисования, поэтому вы можете указать цвет фона на основе видимых линий. ClientDataset может легко управлять довольно большим количеством данных, и сетка будет рисовать только те строки, которые видны.

В любом случае, если вы много регистрируетесь, постоянное перерисовывание компонента журналирования замедляет работу приложения. Возможно, вы должны сделать журнал менее оперативным, кэшируя строки во временном журнале и добавляя их навалом в видимый журнал каждые несколько секунд.

...