RichEdit1->DefAttributes->Color = clBlue;
RichEdit1->DefAttributes->Style =
RichEdit1->DefAttributes->Style << fsBold << fsItalic;
Работа с отдельными строками в RichEdit
Никак не могу разобратся с обработкой текста, точнее отдельных строк, в RichEdit. Например какую-то строчку сделать курсивом или жырным шрифтом. Напишите пожалуйста какой-то пример. Заранее спасибо!!!!!!!!!!!!!!!!!!
Код:
Цитата: kot_
Какойто пример:
Код:
RichEdit1->DefAttributes->Color = clBlue;
RichEdit1->DefAttributes->Style =
RichEdit1->DefAttributes->Style << fsBold << fsItalic;
RichEdit1->DefAttributes->Style =
RichEdit1->DefAttributes->Style << fsBold << fsItalic;
Это в общем для RichEdit, а как всё-таки обращатся к отдельным строкам текста, например к строке, которая начинается с определённого слова?
так и спрашивал бы: "Как программно выделить в RichEdit конкретную строку? Как узнать SelStart и SelLenght?"
как стандартно не припомню, но ведь всегда можно пробежаться по знакам переноса строки...
Цитата: vitalya777
Это в общем для RichEdit, а как всё-таки обращатся к отдельным строкам текста, например к строке, которая начинается с определённого слова?
Я не могу понять - справка только у меня доступна? Или клавиша Ф1 поломана? :)
Поиск:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
FindDialog1->Execute();
}
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
int FoundAt, StartPos, ToEnd;
// begin the search after the current selection
// if there is one
// otherwise, begin at the start of the text
if (RichEdit1->SelLength)
StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
else
StartPos = 0;
// ToEnd is the length from StartPos
// to the end of the text in the rich edit control
ToEnd = RichEdit1->Text.Length() - StartPos;
FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
if (FoundAt != -1)
{
RichEdit1->SetFocus();
RichEdit1->SelStart = FoundAt;
RichEdit1->SelLength = FindDialog1->FindText.Length();
}
}
{
FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
FindDialog1->Execute();
}
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
int FoundAt, StartPos, ToEnd;
// begin the search after the current selection
// if there is one
// otherwise, begin at the start of the text
if (RichEdit1->SelLength)
StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
else
StartPos = 0;
// ToEnd is the length from StartPos
// to the end of the text in the rich edit control
ToEnd = RichEdit1->Text.Length() - StartPos;
FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
if (FoundAt != -1)
{
RichEdit1->SetFocus();
RichEdit1->SelStart = FoundAt;
RichEdit1->SelLength = FindDialog1->FindText.Length();
}
}
Как как выделенному тексту изменить атрибуты я написал. Как менять атрибуты у параграфа - я тоже помоему описывал. Используйте поиск - или ждите пока закончу работу с факом.