Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Возможности текстового редактора


Автор: ALEXAN 5.5.2002, 13:28
Кто подскажет, как организовать синтаксическое выделение заданных ключевых слов в тексте, как это делается, например, в редакторах компиляторов. Выделение должно быть выполнено жирным шрифтом.
Изначально предполагалось использовать объект TRichEdit (CBuilder), но возможны и другие варианты.

Автор: Vit 5.5.2002, 14:33
Естественно другие! Беда с RichEdit в том что тебе надо прорисовать весь текст, и если он большой то начинает очень сильно тормозить. А делается это так - ты когда выводишь текст на экран то проходишь по всем словам и на экран выводишь слова соответственно окрашенные, другими словами окрашивается только то что видно в настоящий момент. Алгоритмы сего дела не то чтобы сложны но довольно трудоемки. Для Дельфи есть бесплатный пакет с исходниками редактора с поддержкой подсветки около 30 наиболее распространенных форматов SYNEDIT , скачать можно у меня с сайта:

http://chicago.lastplanet.com/delphi/delphi.htm

Он будет работать и с Борландовскими билдерами.

Автор: ALEXAN 5.5.2002, 22:53
Цитата(Vit @ 05.5.2002, 15:33)
Естественно другие! Беда с RichEdit в том что тебе надо прорисовать весь текст, и если он большой то начинает очень сильно тормозить. А делается это так - ты когда выводишь текст на экран то проходишь по всем словам и на экран выводишь слова соответственно окрашенные, другими словами окрашивается только то что видно в настоящий момент. Алгоритмы сего дела не то чтобы сложны но довольно трудоемки. Для Дельфи есть бесплатный пакет с исходниками редактора с поддержкой подсветки около 30 наиболее распространенных форматов SYNEDIT , скачать можно у меня с сайта:

http://chicago.lastplanet.com/delphi/delphi.htm

Он будет работать и с Борландовскими билдерами.

Спасибо!
Чес говоря, я слыхал уже раньше про SynEdit, но не мог его найти в сети.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)