![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
richedit [D5, Win95/98]
ded_di © (2002-04-02 15:08:00)Подскажите пжалуста.
Как изменить текст в richedit, не теряя при этом форматирование.
ded_di (2002-04-03 12:34:00) [1]Да нет на самом деле атрибуты теряются и при таком коде, который я написал (я имею в виду любые атрибуты, во всем рич эдите). Но эту проблему я решил делая так:
cb:=TClipBoard.Create;
cb.SetTextBuf(PChar(string(newStr)));
RxRichEdit1.FindText(oldStr,0,length(RxRichEdit1.Text),[stWholeWord,stSetSelection]);
RxRichEdit1.PasteFromClipboard;
cb.Destroy;
Но теперь есть другой вопрос.
Рич Эдит не понимает правильно таблицы и их выравнивания? Или я ошибаюсь?
Sat7 (2002-04-03 12:27:00) [2]Если у тебя 15 символов в richedit"e, и атрибуты меняются с 6-го символа на другие, а потом ты заменяешь с 3 по 12 символы на свой текст, то установленные до этого с 6-го символа атрибуты просто потеряются (ты их затрешь!), а выставятся те же самые, которые были установлены для символов до 6-го. О как!
ded_di (2002-04-03 12:17:00) [3]Да я все так и делаю
RxRichEdit1.FindText(oldStr,0,length(RxRichEdit1.Text),[stWholeWord,stSetSelection]);
sp:=RxRichEdit1.SelStart;
RxRichEdit1.Text:=copy(RxRichEdit1.Text,0,sp)+newStr+copy(RxRichEdit1.Text,sp,length(RxRichEdit1.Text)-sp);
Что значит
Если при замене ты залезаешь на границу смены атрибутов, они теряются.
Sat7 (2002-04-03 11:47:00) [4]
Атрибуты выделенного фрагмента:
RichEdit1.SelStart:=10;
RichEdit1.SelLength:=20;
RichEdit1.SelAttributes.Size:=40;
Замена с 3-го по 6-ой символы на ABCD:
RichEdit1.Text:=Copy(RichEdit1.Text,1,2)+"ABCD"+Copy(RichEdit1.Text,7,Length(RichEdit1.Text)-6);
Если при замене ты залезаешь на границу смены атрибутов, они теряются.
ded_di (2002-04-03 11:22:00) [5]Не понял. Можно подробнее. Мне нужна автозамена без участия пользователя.
aus (2002-04-02 16:39:00) [6]SelLength, SelStart, SelAttributes....