Вниз
Скачать: 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.016 c
1-51235
Alexious
2003-10-02 19:40
2003.10.16
Перевод систем исчисления


8-51355
m_e_t_a_n
2003-06-16 15:58
2003.10.16
Работа с 2d графикой.


1-51205
User_OKA
2003-10-07 10:15
2003.10.16
IntToHex


1-51207
leonidus
2003-10-03 09:51
2003.10.16
Компоненты в стиле XP


7-51542
Alessio2003
2003-08-02 15:05
2003.10.16
Команды Power Off, Sleep, Log Off




   Наверх