Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Красиво писАть в Richedit e...


Борис_ ©   (2003-02-09 02:23:00) 

суть заключается в том что я не могу до конца понять как думает RichEdit... хочется добовлять в ричедит текст разного цвета,размера. но не так...

richedit1.selattributes.color:=clred;
richedi1.selattributes.height:=20;
richedit1.lines.add("текст");
а так чтобы каждый символ в строке допустим имел свой размер или цвет..

но привязать selattributes к richedit1.text:=richedit1.text+"A";
не получается, т.е. пишет обычным черным шрифтом стандартного размера..:(

я решил попробовать так:
создаю мемо и в него пихаю текст в "формате" rtf (ну всякие там \fs \cf \b \i...) потом сохраняю в поток и загружаю в ричедит этот поток... все вроде хорошо...но вот очень сильное мерцание (если часто добавлять) т.к. там заного "рисуется" весь текст.

может есть какие-то другие способы...поделитесь. спасибо!


ts   (2003-02-17 08:47:00) [1]

>но привязать selattributes к richedit1.text:=richedit1.text+"A";
>не получается, т.е. пишет обычным черным шрифтом стандартного >размера..:(

...
richedit1.SelStart:=Length(richedit1.Text);
richedit1.SelText:="A";
...


perseptron   (2003-02-11 11:12:00) [2]

А как програмно перевести скролер richedit в последнюю позицию кто-нить знает?


alehan   (2003-02-11 10:57:00) [3]

with RichEdit1 do
begin
Clear;
SelectAll;
SelAttributes.Color:=Font.Color;
Text := "Абырвалг";
SelStart := 5;
SelLength := 2;
SelAttributes.Color:=clRed;
end;


в win2000 работает, текст раскрашивает.
Но если в RichEdit1.Text запихнуть символ "номер" (№), RichEdit сам собой меняет фонт. Так что он всё-таки думает, только непонятно о чём.


Slava   (2003-02-10 10:39:00) [4]

richedit1.selattributes.color:=clred;
richedi1.SetSelTextBuf("текст ");
richedit1.selattributes.color:=clblue;
richedi1.SetSelTextBuf("текст 2");


ALex44   (2003-02-10 00:18:00) [5]

Po-moemu, TRichEdit ne dumaet (t.k. on prosto ispol"zuet control, vstroennyj v Windows, kotoryj dumat" ne mozhet). K tomu zhe, pohozhe, eto sil"no zavisit ot versii .dll.

K stati, znaet kto-nibud", kak izmenit" font zagruzhennogo texta v rezhime PlainText? To, chto rabotalo v Win98 (Font := ...), perestalo rabotat" v w2k...


Романов Р.В.   (2003-02-09 17:19:00) [6]

Ну если в цикле тогда так
var
i: Integer;
begin
with RichEdit1 do
for i := 0 to Length(Text)-1 do
begin
SelStart := i;
SelLength := 1;
with SelAttributes do
begin
Color := Random($1000000);
Height := Random(24);
end;
end;
end;


Борис_   (2003-02-09 16:53:00) [7]

2 Романов Р.В. не получается...
если все это в цикл пустить (for i:=1 to length(richedit1.text)) то изменить цвет размер только последнего символа...


Романов Р.В.   (2003-02-09 15:45:00) [8]

with RichEdit1 do
begin
SelStart := 0;
SelLength := Length(Text) div 2;
with SelAttributes do
begin
Color := clRed;
Height := Height * 2;
end;
SelStart := SelLength;
SelLength := MaxInt;
with SelAttributes do
begin
Color := clGreen;
Height := Height div 2;
end;
end;


Борис_   (2003-02-09 15:09:00) [9]

не понял?
а где указывать цвет и размер?


Viktor Kushnir   (2003-02-09 08:51:00) [10]

Можно попробывать найти методы
RichEdit.Lines.BeginUpdate;
//тут ты вставляешь текст.
RichEdit.Lines.EndUpdate;


Наверх

Титульная страница Поиск, карта сайта Написать письмо