Главная страница
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
3-51065
Малиновский Владимир
2003-09-26 15:10
2003.10.16
По поводу надежности FireBird 1.5 RC6


1-51307
han-bratan
2003-10-06 11:38
2003.10.16
регистрация com объекта


1-51203
dnsokol
2003-09-25 10:10
2003.10.16
MDI окошко в DLL ке


1-51166
beglec
2003-10-05 13:03
2003.10.16
Как узнать чековую сумму файла?


7-51536
pro100max
2003-07-30 08:19
2003.10.16
Как затормозить Винду?