Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: CL | DM;

Вниз

Подсветка синтаксиса   Найти похожие ветки 

 
Gero ©   (2003-10-05 10:38) [0]

Люди, подскажите пожалуйста, можно ли где-то достать нормальный
компонент для подсветки синтаксиса, или хотя бы нормальные алгоритмы.
Пытаясь написать что-то подобное я убил очень много времени, но ничего не получилось. Пробовал делать наследника TRichEdit, и даже наследника TWinControl, но толку мало.


 
Song ©   (2003-10-05 12:10) [1]

DreamMemo
SynEdit


 
Gero ©   (2003-10-05 12:39) [2]

>Song

И где их можно найти? Может, я совсем темный, про такие компоненты не слышал.


 
k-man ©   (2003-10-05 21:31) [3]

Я делал подсветку сам. Убил на это два часа времени.
Опишу задачу которая передо мной тогда встала
Есть текст в РичЭдите, если некий идентификатор в нем заканчивается символом ":" то его(только его а не всю строку) надо было подсветить синим цветом. Если же в тексте находится "`"(это символ начала комментария), то всю эту строку надо было выделить зеленым.
Приведу пример
-----------------------
Start: `Это метка начала
st.command1
------------------------
В результате "Start:" становится синим, "`Это метка начала" - зеленым,
а "st.command1" - остаться таким же.
Как я разрешил эту задачу:
На события Рича типа OnChange(и другие связанные с добавлением текста)
я повесил свою процедуру, которую назвал PaintText.
Она сначала делает весь текст форматом по умолчанию(черным цветом),
потом поочередно ищет в тексте все символы ":" с помощью FindText,
потом высекает из текста слово которое заканчивается эти символом и ставит ему нужные атрибуты. Так пока не будут найдены все символы ":"
Потом делает похожий цикл поиска по сиволу "`", высекает нужную строку и устанавливает ей атрибуты.
Вот так, вроде работает. Единственное что - немного мигает, но от этого избавимся..
Кода не привожу потому как его сложно выдрать из общего контекста программы...


 
хз ©   (2003-10-05 21:55) [4]

2 k-man ©

RichEdit не подходит для этого, слишком уж медлительно работает с большими текстами.

> И где их можно найти? Может, я совсем темный, про такие
> компоненты не слышал.

SynEdit - synedit.sourceforge.net
DreamMemo - torry.net или на сайте Dream Company.


 
k-man ©   (2003-10-05 22:39) [5]


> RichEdit не подходит для этого, слишком уж медлительно работает
> с большими текстами.

Ну у меня никаких задержек не замечено...



Страницы: 1 вся ветка

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-51238
LDE
2003-10-07 10:13
2003.10.16
Текстовые файлы


1-51162
Senia
2003-10-05 16:21
2003.10.16
Random


1-51334
Islander
2003-10-05 11:42
2003.10.16
Компонент на основе TTreeView. Переопределение OnEdited


3-51094
Signed
2003-09-26 00:42
2003.10.16
Помогите разобраться новичку в БД


4-51548
V3L0M
2003-08-12 22:53
2003.10.16
как получить handle speedbutton а в чужой программе