Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Подсветка   Найти похожие ветки 

 
Ламо   (2004-06-06 15:54) [0]

Раскажите как осуществляется подсветка синтаксиса в текстовых редакторах(Delphi, php) и т.д. и т.п.


 
VMcL ©   (2004-06-06 16:10) [1]

Часто на базе элемента TRichEdit.


 
Anatoly Podgoretsky ©   (2004-06-06 16:36) [2]

По разному


 
parovoZZ ©   (2004-06-06 19:28) [3]

А если серъёзно?


 
Cardinal ©   (2004-06-06 19:51) [4]

>А если серъёзно?

Я не знаю, но, вероятно, существует массив строк с выделяемыми
словами. Ищется строка i (в цикле), находится ее позиция, устанавливается SelStart, SelLength := Length(massiv[i]), ищется ее следующее вхождение в текст и т.д.


 
GanibalLector ©   (2004-06-06 19:53) [5]

>Я не знаю, но, вероятно, существует массив строк с выделяемыми
>словами. Ищется строка i (в цикле), находится ее позиция, >устанавливается SelStart, SelLength := Length(massiv[i]), >ищется ее следующее вхождение в текст и т.д.

И вероятнее всего это еще в потоке...дабы не тормозить основной поток программы.


 
parovoZZ ©   (2004-06-06 20:25) [6]

Ясно, будем работать.


 
AlexG ©   (2004-06-06 21:36) [7]

Наверно, нужно еще и обеспечить возможность обработки только видимого текста, а не всего редактируемого. Иначе будет очень долго при большом файле.


 
Gero ©   (2004-06-06 22:00) [8]


> Часто на базе элемента TRichEdit.

Скажите, Вы видели когда-либо нармальную неглючную подсветку синтаксиса на базе RichEdit"а?
Лично я - нет.
Он совсем не подходит для этих целей.


 
vertal ©   (2004-06-06 22:45) [9]

Алгоритм подсветки я бы предложил примерно такой : есть текст , загруженный куда нибудь.Есть позиция последнего видимого символа и первого видимого символа.Надо раскрасить текст от первого до последнего видимого символа в соответствии с выбранной схемой подсветки.Есть сканер , который на входе принимает текст , позицию следующего обрабатываемого символа и схему подсветки , а на выходе дает тип опознанной лексемы (ключевое слово , комментарий , спец символ , недопустимый символ и т.д.) и позицию следующего обрабатываемого символа . По этой информации можно соотв. расцветить текст между этими двумя позициями.Если есть многострочные комментарии , то придется проходить текст от начала , чтобы определить , чем является первый видимый символ - текстом комментария или программы.Я реализовывал такой алгоритм в нескольких программах на паскале, Delphi и Delphi+VBA for Word, если кому интересно то исходники есть на моем сайте www.vertal1.narod.ru в соотв. разделе.


 
KilkennyCat ©   (2004-06-07 00:37) [10]


> Gero ©   (06.06.04 22:00) [8]


на базе ричедита действительно не видел нормальную, а вот у плюсмемо - да.



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1085827922
Denis_Visma
2004-05-29 14:52
2004.06.20
Вопрос по нескольким ДатаСеиам и одной транзакции


4-1084476614
SergeyV
2004-05-13 23:30
2004.06.20
Непонятки с функцией FrameRgn


14-1086076866
ИМХО
2004-06-01 12:01
2004.06.20
Наши футбольные комментаторы


14-1086230083
Думкин
2004-06-03 06:34
2004.06.20
С днем рождения! 3 июня


3-1085479397
Rouse_
2004-05-25 14:03
2004.06.20
Исключение записи из выборки