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


Автор: mr.Anderson 30.12.2005, 19:39
Подскажите, как в компоненте TRichEdit сделать выделение, например, курсивом только части текста, как в Word'е, а не всего сразу? Если это невозможно в этом компоненте, то подскажите, в каком.

Автор: Partizan 31.12.2005, 00:58
возможно...ещё как возможно...насколько я помню там реально отобразить документ *.rtf, который может содержать тэги форматирования...

Автор: BreakPointMAN 31.12.2005, 11:12
sim7, а help'ом воспользоваться слабо? У TRichEdit есть свойства SelStart, SelLength, SelAttributes. С помощью первых двух указываешь границы фрагмента текста, к которому ты хочешь применить изменения, с помощью последнего - меняешь шрифт.
Например:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   RichEdit1->SelStart=0; 
   RichEdit1->SelLength=4;
   RichEdit1->SelAttributes->Style=
      RichEdit1->SelAttributes->Style << fsItalic;
}

Если в твоем RichEdit'е было введено "RichEdit1", то после нажатия на Button1 "Rich" будет выделено курсивом...

Автор: mr.Anderson 31.12.2005, 16:46
BreakPointMAN, этот прием я знаю. Но суть в том, что я делаю банальный блокнот для тренировки. Но хотелось бы сделать в нем возможность выделения жирным только того текста, который либо выделен, либо набирается после включения режима "Жирный". То есть, юзверь нажал на "Жирный", и весь следующий текст будет жирным. А предыдущий нет.
Поэтому я и спрашиваю, как это сделать, потому что не могу понять, как тут применить SelStart и SelLength.

Автор: Partizan 31.12.2005, 18:12
а чо непонятного....при каждом нажатии меняешь(увеличиваешь на 1) SelLength и всё...

Автор: mr.Anderson 1.1.2006, 19:38
Да? А SelStart какой задать?

Автор: Partizan 1.1.2006, 20:30
по нажатию кнопки "Жирный"

Автор: mr.Anderson 2.1.2006, 01:06
Не понял. Я спросил, какое значение задать SelStart, а не когда его задавать!

Автор: Partizan 2.1.2006, 02:40
длину текста, который был напечатан до нажатия кнопки "Ж"

Автор: mr.Anderson 2.1.2006, 17:12
Partizan, спасибо! Блокнот получился. smile Теперь им буду пользоваться вместо стандартного блокнота.
От меня + вам в репутацию.

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