Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизПодсветка синтаксиса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c