Вопрос
В моей программе на Delphi я хочу отобразить некоторую информацию, сгенерированную приложением.Ничего особенного, просто 2 столбца текста с цветовыми кодировками частей слов.
Я думаю, что в принципе у меня есть два варианта:
- HTML в TWebBrowser
- RTF в TRichEdit.
HTML более стандартен, но, кажется, загружается медленнее, и мне пришлось иметь дело с Раздражающий Звук Щелчка.Является ли RTF по-прежнему хорошей альтернативой в наши дни?
Редактировать:
Хороший вопрос от дангфа:"Что происходит с сгенерированными документами?"
Документы будут удалены после просмотра.
Решение
Я бы также использовал HTML.Кроме того, вы только что получили ответ на этот вопрос. звук щелчка в TWebBrowser.
Если вы предпочитаете не использовать TWebBrowser, взгляните на бесплатную версию Дейва Болдуина. Компоненты отображения HTML.
Другие советы
Я бы проголосовал за HTML.
Я думаю, что это больше ориентировано на будущее.Скорость меня бы не волновала.
Вопрос о HTML или RTF может быть неуместным.Если они используются только для отображения, то формат файла не имеет значения.На самом деле это просто внутреннее представление.(Сохраняются ли вообще какие-либо файлы на диске?) Я думаю, вопрос в том, какой из них решает проблему с наименьшими затратами труда.
Я был бы немного обеспокоен тем, что управление браузером постоянно меняется.Я сомневаюсь, что элемент управления richedit сильно изменится.Я бы склонялся к элементу управления richedit, потому что я думаю, что с ним меньше всего может пойти не так.Но в любом случае, это, вероятно, не имеет большого значения.
Рассматривали ли вы возможность создания ownerdraw TListView?
Я бы тоже проголосовал за HTML.
Некоторое время назад мы запустили приложение...Мы хотели
отобразите некоторую информацию, сгенерированную приложением.Ничего особенного, просто...
(ты слышишь, как звонят колокола???)
Затем мы захотели отобразить больше информации и придать ей еще больший стиль.......кто-то решил, что RTF уже недостаточно, но для обеспечения обратной совместимости мы перешли на MS Word поверх OLE-сервера.На этом разговоры о производительности закончились.
Я думаю, если бы мы сделали это в HTML, сейчас это было бы намного быстрее.
С RTF намного проще иметь дело, поскольку элемент управления TRichEdit является частью каждой отдельной установки Windows и требует гораздо меньших затрат, чем TWebBrowser (который в основном встраивает ActiveX-версию Internet Explorer в ваше приложение).
TRichEdit также намного проще использовать для программного добавления текста и форматирования.Использование SelStart и SelLength, наряду с атрибутами текста, позволяет добавлять выделение жирным шрифтом и курсивом, устанавливать различные шрифты и т.д.просто.И, как сказал Re0sless, TRichEdit можно легко распечатать, в то время как TWebBrowser усложняет это.
Я бы проголосовал за RTF, поскольку мне не нравится тот факт, что TWebBrowser использует Internet Explorer, поскольку в прошлом у нас были проблемы с этим на плотно заблокированных компьютерах.
Также в TRichEdit встроен метод печати, где, поскольку вам приходится проделывать всевозможные манипуляции, чтобы заставить TWebBrowser печатать.
Похоже, никто еще не упоминал о компоненте отчетности.Да, сейчас это излишество, но если вы все равно им пользуетесь (и, возможно, у вас уже есть какие-то отчеты для вашего приложения, поэтому компонент уже включен), вы можете просто отобразить предварительный просмотр и разрешить печать / экспорт в pdf позже, если это имеет какой-то смысл.Кроме того, если позже вы решите, что хотите иметь более модную экспозицию, вас ничто не удержит.
Если и HTML, и RTF не удовлетворяют вашим потребностям, вы также можете использовать компонент редактирования текста с открытым исходным кодом, который поддерживает раскраску слов, или создать свой собственный компонент редактирования на основе компонента Delphi.
Другой альтернативой HTML-браузеру является "Встроенный веб-браузер" компоненты, которые я использовал в нескольких проектах для отображения html-документов пользователю.У вас есть полный контроль над встроенным браузером, и я не помню никаких кликов при загрузке страницы.
Я тоже голосую за HTML
RTF хорош только для своего редактора, в противном случае вам лучше перейти на стандартный формат.
RTF предлагает некоторые полезные опции редактирования текста, такие как горизонтальная таблица, которые недоступны в HTML.Автоматическое обнаружение гиперссылок также является приятным дополнением.Но я думаю, что предпочел бы HTML, если бы эти функции не требовались.
Я голосую за HTML.
- Проще сгенерировать программно.
- Широко поддерживается.
- Поскольку вам не нужны возможности WYSIWYG, я думаю, что преимущества HTML превосходят RTF.Более того, если возникнет необходимость экспортировать сгенерированные данные для дальнейшего редактирования в стиле WP, помните, что основные текстовые процессоры могут открывать и конвертировать HTML-файлы.
Используйте HTML, но с 'Оболочка Delphi для Встроенный хром" по Генри Гурвест , Chromium embedded использует ядро , которое питает Google Chrome.
Не используйте TWebBrowser, я страдаю от всех программ, которые используют веб-контроль IE - шрифт слишком маленький на моем 22-дюймовом мониторе с разрешением 1920x1080, я использую Windows 7, и DPI моей системы составляет 150% (режим XP), я перепробовал все, чтобы настроить, пытаясь исправить это, безуспешно...