Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > TRichEdit Как перекрасить строку


Автор: ausar 20.9.2010, 03:07
Привет всем.

Мне необходимо сделать выделение строки содержащей определенное слово. Как это делается я знаю. Как это сделать в RichEdit тоже.
Я решил сделать так чтобы после добавления строки в RichEdit происходила проверка - содержит ли строка заданное слово. Т.е последняя добавленная строка каждый раз проходит проверку.Это тоже у меня получилось. Т.е при обнаружении слова в строке происходит какое нибудь действие. 
Что собственно не получается так это сделать перекраску строки. Т.е перекрасить последнюю добавленную строку если она соответствует условиям.


Помогите пожалуйста.

Автор: Sonic7272 20.9.2010, 07:28
Код

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    ShadedRow(RichEdit1->Lines->Count,clRed);
}

void TForm1::ShadedRow(int ARow, TColor AColor)
{
     RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX, ARow - 1, 0);
     RichEdit1->SelLength = (RichEdit1->Lines->Strings[ARow-1].Length());
     RichEdit1->SelAttributes->Color = AColor;
}

... ну как-то так
Вместо кнопки используй свое условие.

Автор: ausar 20.9.2010, 09:38
Большое спасибо! Именно так как надо.

Автор: oldcode 8.10.2010, 09:40
Цитата(ausar @ 20.9.2010,  03:07)
выделение строки содержащей определенное слово.
...
чтобы после добавления строки в RichEdit происходила проверка - содержит ли строка заданное слово. Т.е последняя добавленная строка каждый раз проходит проверку.Это тоже у меня получилось. Т.е при обнаружении слова в строке происходит какое нибудь действие.

если не трудно smile , как Вы это реализовали, хорошо бы - с кодом  smile .

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)