Подчеркивание слов в RichEdit...
От: _Fima  
Дата: 01.11.06 13:26
Оценка:
Hi, всемогущий ALL! Как в RichEdit Builder выполнить волнистое подчеркивание слова, как в WORD? Моя программа проверяет орфографическую правильность слова, если оно не правильное, то хотелось бы выделить это... Компонент Addict 2.4, к примеру, умеет выделять слова таким образом.. как бы и мне научиться?
Re: Подчеркивание слов в RichEdit...
От: ArtDenis Россия  
Дата: 02.11.06 12:20
Оценка:
_Fima wrote:
>
> Hi, всемогущий ALL! Как в RichEdit Builder выполнить волнистое
> подчеркивание слова, как в WORD? Моя программа проверяет орфографическую
> правильность слова, если оно не правильное, то хотелось бы выделить
> это... Компонент Addict 2.4, к примеру, умеет выделять слова таким
> образом.. как бы и мне научиться?

Недавно реализовывал тоже самое Чтобы особо не мудрить, я просто
перерисовывал подчёркивания каждые 500 милисекунд. Плюс к этому,
компонент был не RichEdit, а RxRichEdit, т.к. RichEdit не умеет находить
координаты букв по их индексу.
Posted via RSDN NNTP Server 2.0
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Подчеркивание слов в RichEdit...
От: _Fima  
Дата: 02.11.06 12:47
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Недавно реализовывал тоже самое Чтобы особо не мудрить, я просто

AD>перерисовывал подчёркивания каждые 500 милисекунд. Плюс к этому,
AD>компонент был не RichEdit, а RxRichEdit, т.к. RichEdit не умеет находить
AD>координаты букв по их индексу.

Вот-с, как вариант... (http://www.rsdn.ru/Forum/?mid=2195016).

   RichEdit1->SelStart = 1;
   RichEdit1->SelLength = 10;


   CHARFORMAT2 cf2 = {0}; // или просто обнулить если в дефли пишешь
   cf2.cbSize = sizeof( cf2 );
   cf2.dwMask = CFM_UNDERLINETYPE;
   cf2.bUnderlineType = CFU_UNDERLINEWAVE | 0x50;
   SendMessage( RichEdit1->Handle, EM_SETCHARFORMAT, true, (LPARAM) &cf2 );

Выделит в RichEdit все с 1 по 10 волнистой линией снизу. как в Ворде... (с) sjukov
Re[3]: Подчеркивание слов в RichEdit...
От: ArtDenis Россия  
Дата: 03.11.06 05:37
Оценка:
_Fima wrote:
> Вот-с, как вариант... (http://www.rsdn.ru/Forum/?mid=2195016
Автор: sjukov
Дата: 02.11.06

> Выделит в RichEdit все с 1 по 10 волнистой линией снизу. как в Ворде...

Ну-ну... А какое будет быстродействие? Да и текст всё время будет
дёргаться
Posted via RSDN NNTP Server 2.0
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[4]: Подчеркивание слов в RichEdit...
От: _Fima  
Дата: 03.11.06 07:24
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD> я просто перерисовывал подчёркивания каждые 500 милисекунд....компонент был не RichEdit, а RxRichEdit...


Так значит RxRichEdit умеет запросто такие подчеркивания делать и без тормозов? Вообще у меня уже много кода написано, в проекте RichEdit использовался...ну, раз так, мона и на RxRichEdit переделать. На VCL вообще внимания не хотел заострять, просто свой движок проверки орфографии отладить. Но вообще терзаем вопросом как такие подчеркивания делает компонент Addict 2.4...Он в RichEdit орфографию проверяет и подчеркивания делает, и без тормозов
Re[5]: Подчеркивание слов в RichEdit...
От: ArtDenis Россия  
Дата: 03.11.06 08:56
Оценка:
_Fima wrote:
> Так значит RxRichEdit умеет запросто такие подчеркивания делать и без
> тормозов?

Не умеет. Всё сделано ручками. Единственное, что я не использовал при
этом WinAPI, а пользовался ф-циями RxRichEdit-а. Думаю, всё тоже самое
можно сделать и для RichEdit, но его придётся обрабатывать напильником.
Posted via RSDN NNTP Server 2.0
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[4]: Подчеркивание слов в RichEdit...
От: adontz Грузия http://adontz.wordpress.com/
Дата: 03.11.06 09:12
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Ну-ну... А какое будет быстродействие? Да и текст всё время будет дёргаться


Можно через TOM, там скорость на порядок быстрее.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Подчеркивание слов в RichEdit...
От: sjukov Украина  
Дата: 04.11.06 17:49
Оценка:
Здравствуйте, _Fima, Вы писали:

_F>Hi, всемогущий ALL! Как в RichEdit Builder выполнить волнистое подчеркивание слова, как в WORD? Моя программа проверяет орфографическую правильность слова, если оно не правильное, то хотелось бы выделить это... Компонент Addict 2.4, к примеру, умеет выделять слова таким образом.. как бы и мне научиться?

Дружище!! Давай думать вместе — ты можешь изменить атрибуты цвета выделенного фрагмента.

1. Меняешь атрибут выделенного фрагмента.. чтобы фон выделенного был такимж как и фон ричэдита
2. выделяешь текст, подчеркиваешь
3. ставишь обратно аттрибут на синенький..


4. have fun

И у тебя ничего не мелькает и все хорошо.

Поставь еще свойсво DoubleBuffered = true;
И ваще тада будет море по колено.



Это так. на вскидку.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Подчеркивание слов в RichEdit...
От: _Fima  
Дата: 14.11.06 06:13
Оценка:
Привет, All! Сорри что давненько не заходил...

Здравствуйте, sjukov, Вы писали:

S>Дружище!! Давай думать вместе — ты можешь изменить атрибуты цвета выделенного фрагмента.


S>1. Меняешь атрибут выделенного фрагмента.. чтобы фон выделенного был таким же как и фон ричэдита

S>2. выделяешь текст, подчеркиваешь
S>3. ставишь обратно аттрибут на синенький..
S>4. have fun

S>И у тебя ничего не мелькает и все хорошо.


(NOTE: в примере по исходнику выше действительно немного помаргиваетъ...)

S>Поставь еще свойство DoubleBuffered = true;

S>И ваще тада будет море по колено.

Извиняйте, но не совсем понял что здесь колдуется..мона как-нибудь пояснить подоходчивее ??
Re[2]: Подчеркивание слов в RichEdit...
От: _Fima  
Дата: 14.11.06 06:38
Оценка:
S>1. Меняешь атрибут выделенного фрагмента.. чтобы фон выделенного был таким же как и фон ричэдита

Не знаю как изменить фон для выделения текста

S>2. выделяешь текст, подчеркиваешь


Подчеркиваю-то как? Обычным горизонтальным или как подсказано в коде выше?

S>3. ставишь обратно атрибут на синенький...


Атрибут чего? Текста, фона выделения текста или фона ричэдита?

Sorry for my stupidity, ple-e-e-ase...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.