|
|
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, господа кодеры. Может не в тему вопрос, но... Кто нть знает, как можно реализовать подсветку синтаксиса. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 11:59 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
вопрос интересный. в примерах что с билдером идут что то есть, но там какие то забубенные вызовы и которые к тому же заточены для работы с выделенным блоком ... подробнее разобраться небыло времени :(( так что я тоде присоединяюсь к вопросу. и тоже буду благодарен если кто поделится ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 18:33 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
На onChange или EN_CHANGE парсить текст и с помощью EM_EXSETSEL & EM_SETCHARFORMAT устанавливать цвет нужных слов... Если запоминать предыдущее положение курсора (EN_SELCHANGE) и сравнивать с текущим можно сущесвенно сузить текст для просмотра... плюсы - относительно простая реализация минусы: мерцание, можно уменьшить до минимума, но не избавиться, где то слышал, что это связано с медленной работой EM_SETCHARFORMAT. геморой с undo/redo все изменения выделения и изменения шрифта поппадают в буфер различная реализация сообщений для разных версий RichEdit'а 2ой путь обработка WM_PAINT и своими ручками перерисовывать окно К сожалению я ещё не разобрался в нём, но ИМХО более перспективный путь, хотя и более геморойный, и в принципе не требует RichEdit вполне хватит и Memo... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2003, 15:16 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
>как можно реализовать подсветку синтаксиса ну например так: Код: plaintext 1. 2. 3. Кроме цвета можно ещё подсветить: Код: plaintext 1. 2. 3. 4. Тока одно но. После изменения текста в RichEdit1 вся эта красочная подсветка пропадёт :((. По-этому нужно сначала полностью его заполнить а потом разукрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2003, 17:17 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 DarkCat а я как-то не так сказал? >Тока одно но. >После изменения текста в RichEdit1 вся эта красочная подсветка пропадёт :((. >По-этому нужно сначала полностью его заполнить а потом разукрашивать. разве... у меня по всей видимости устаревшая информация, но такой эфект не наблюдаю Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2003, 17:19 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2Sfagnum, Как я понил, человек работает с T RichEdit. Это оболочка стандартного RichEdit. Живёт она в BCBuilder-овской библиотеке VCL. >но такой эфект не наблюдаю У меня информация самая свежая :). По крайней мере в VCL последней версии со всеми сервиспаками именно так. А вот как в MFC - низнаю и врать не буду. 2m-j, Будь, пожалуйста, попросторней в своих сообщениях, желательно всё-таки указывать среду. А вообще, все BCBuilder-овцы сидят в дельфийском форуме, потому что там народу больше и вопросы те же (VCL-то у Билдера и Дельфи одна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2003, 17:55 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 DarkCat Я ни про VCL, ни про MFC врать не буду, извении если ошибся. Я прсто про стандартный RichEdit говорил... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 09:32 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 DarkCat DarkCat писал:Тока одно но. После изменения текста в RichEdit1 вся эта красочная подсветка пропадёт :((. По-этому нужно сначала полностью его заполнить а потом разукрашивать. Да гонишь ты все. Из 5го билдера TRechEdit вполне адекватно работает. Разукрашиваешь, а потом редактируешь и там где по логиге должно быть разукрашено там и получается разукрашено. Под 6й билдер перекомпилить проект руки не дошли, но я уверен что и там все нормально будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 10:48 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 много цифр редактируешь руками? Тогда может быть. Я говорю о заполнении TRichEdit програмно. Надо тебе например взять из базы несколько варчаров и клобов и сложить из них в TRichEdit заголовок, тему и текст какой-нибудь например статьи и подсветить ключевые слова в тексте. Если ты вытащишь заголовок, разукрасишь его жирным например, а потом добавишь к этой строчке текст статьи то форматирование заголовка исчезнет. По-этому я так делал: заполнял весь TRichEdit, при этом запоминал положения/размер всех заголовков/тем/ключевых слов. А потом только разукрашивал. и ещё: Я никада не гоню. Если я сомневаюсь, я об этом прямо говорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 12:45 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
не спорьте горячие эстонские парни... ну работает так у DarkCat ну и свечи ему от гемороя (эт я не со зла...) Лучше посмотрите у себя номерок константы SES_EMULATESYSEDIT и если есть поделитесь подрбности: EM_SETEDITSTYLE Message Message Information Header Declared in Richedit.h Minimum operating systems Windows 95 with Rich Edit 3.0, Windows NT 4.0 with Rich Edit 3.0, Windows Millennium Edition, Windows 2000 Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 13:59 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 DarkCat извини дорогой, но у меня работает внезависимости от способа редактирования ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 14:27 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
ещё один аргумент против RichEdit здесь там внизу есть такой пунктик Rich Edit Shortcut Keys - всё ли оно надо? Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2003, 14:29 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
для такой вещи как раскраска RichEdit лучше использовать TOM (Text Object Model). например, вот так можно покрасить каждый второй символ в красный цвет: ------------------------ IUnknownPtr pUnk; ::SendMessage(hRichEditWnd, EM_GETOLEINTERFACE, 0, (LPARAM)&pUnk)) ITextDocumentPtr textDoc = pUnk; textDoc->Freeze(); GETTEXTLENGTHEX tl = { GTL_NUMCHARS, 1200}; int iLen = ::SendMessage(hRichEditWnd, EM_GETTEXTLENGTHEX, (WPARAM)&tl, 0); ITextRangePtr pRange = textDoc->Range(0, iLen); for(int i = 0; i < iLen; i+=2) { pRange->SetRange(i, i+1); ITextFontPtr pFont = pRange->Font; pFont->BackColor = RGB(255, 127, 127); } textDoc->Unfreeze(); -------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:11 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 Андрей Шевченко И как там с мерцанием? в RichEdit2.0 действует? Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:17 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
Sfagnum писал: И как там с мерцанием? в RichEdit2.0 действует? Не - не мерцает (по крайней мере на моем компупере) Я тоже сначала с селекшеном работал, но это ведь никуда не годится - курсор бегает, моргает. А вот ITextDocument c Freeze/Unfreeze и ITextRange - это то что надо :) По поводу RichEdit2.0 - должно работать (но я не проверял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:49 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку буду капать... >По поводу RichEdit2.0 - должно работать (но я не проверял :) на MSDN'е написано вроде должно... + даёт возможность управлять Undo/Redo Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 14:58 |
|
||
|
TRichEdit + подсветка синтаксиса
|
|||
|---|---|---|---|
|
#18+
2 Андрей Шевченко обнаружил что нет у меня файлика tom.h не поделитесь? мыло в профиле заранее спасибо Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 09:48 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=469&tid=2035841]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 412ms |

| 0 / 0 |
