![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Раскраска текста [D6, Win95/98]
Nikolay Enby © (2003-01-26 01:38:00)Скажите, плз, как происходит подсветка синтаксиса в редакторах (пробовал OnChange по каждому символу проверять - ТОРМОЗИТ)
Бук (2003-01-27 09:09:00) [1]Я писал "краситель" для PHP, основанный на поиске и замене текста. Работает достаточно шустро. Это пр условии, что перебирался не один массив данных (включены были все возможности PHP + поддержка раскраски различных БД). Единственное, что мне не понравилось - это SetSel. при покраске "больших" операторов заметно для глаза. Что весьма неприятно.
Вообще же могу посоветовать приобрести на amazon.com книгу "Tomes of Delphi. Structures and Alhoritms" Стоит она $34. Конечно дороговато, но она того стоит. Почитай раздел State Machines (Машины состояния). Это отправная точка в раскраске текста.
Из компонентов могу посоветовать mwEdit или его потомок SynEdit. Первый бесплатный, второй - MPL лицензия. Вот вроде и все...
Tux (2003-01-27 00:23:00) [2]Чем быстрее работает такой класс, тем больше он памяти жрет на служебные данные. Объем метаданных (на индексирование ключевых слов) может превышать объем полезных данных в неск. раз. Чтобы не тормозило, используют только низкоуровневые методы вывода текста и другие оптимизации.
Nikolay Enby (27.01.03 00:17)
Хорошие классы используют регулярные выражения или похожий механизм, там без разницы.
Nikolay Enby (2003-01-27 00:17:00) [3]2 Юрий
> А как насчет парсинга? Не пробовали? Ведь светить надо синтаксис,
> а не символы.
Парсинг только слово целиком из строки выделяет(отделенное пробелом)... А если слова все вместе слиты? (напр. текст ХТМЛ)
> Но проще взять готовый компонент. Это не такая простая задача.
Посоветуйте, плз, где :).
Nick_N_A (2003-01-26 05:26:00) [4]Выдели текст програмно (SelStart,SelLength),
измени SelAttributes. (RichEdit)
Юрий Зотов (2003-01-26 01:52:00) [5]А как насчет парсинга? Не пробовали? Ведь светить надо синтаксис, а не символы.
А насчет "тормозит" - стройте таблицы.
Но проще взять готовый компонент. Это не такая простая задача.
gsu (2003-01-26 01:42:00) [6]TTextAttributes ?