Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-51546
AllDontFire
2003-07-30 17:32
2003.10.16
Как программно отключить сетевуху?


14-51428
Igorek
2003-09-25 21:45
2003.10.16
Что будет, если программисты придут к власти?


6-51395
Demetrius2003
2003-08-21 13:51
2003.10.16
WinSock


14-51459
Andryk
2003-09-29 14:49
2003.10.16
Пользуясь случаем хочу поздравить.


6-51364
Novinkij
2003-08-21 14:11
2003.10.16
что-то типа сервера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский