Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
3-51154
jack128
2003-09-22 23:59
2003.10.16
IBDataSet


3-51086
andrey__
2003-09-26 09:56
2003.10.16
Совместное использование Filter и Locate


14-51504
Real
2003-09-27 12:47
2003.10.16
Игры для мобильных: кто занимался?


1-51324
pavlov
2003-10-07 10:17
2003.10.16
пишу новый компонент - возникли вопросы


3-51066
Term
2003-09-26 10:06
2003.10.16
Какие есть методы шифрования инфы в базе




   Наверх