Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Раскраска текста [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 ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо