Текущий архив: 2003.10.27;
Скачать: CL | DM;
Вниз
Работа с RichEdit - проблемы Найти похожие ветки
← →
Иванько (2003-10-15 18:37) [0]При работе с RichEdit возникают следующие неудобства:
1) необходимо выделить участок текста цветом –
richedit1.selstart:=1; richedit1.SelLength:=100000; richedit1.SelAttributes.Color:=clRed; richedit1.SelLength:=0;
при наличии достаточно длинного выделения это визуально видно пользователю и занимает длительное время. Была идея создать невидимый richedit и делать все изменения с ним, но как потом перенести все его содержимое, включая форматирование текста на richedit1? Что-то я не нашел такого свойства, есть свойство text и lines.string[] но они вроде как только текст и хранят… А может быть есть другой метод, более красивый???
2) Как изменить цвет для всего текста?
richedit1.selstart:=0; richedit1.SellectAll; richedit1.SelAttributes.Color:=clRed; richedit1.SelLength:=0;
визуально тоже очень заметно.
И вообще, не нравится мне RichEdit. Может для редактирования он и подходит, но в качестве визуализатора что то не очень… Каким компонентом его можно заменить (требования: отображать разные участки текста разным цветом, позиционирование курсора, редактирование текста – желательно)?
← →
Мафиозо (2003-10-15 21:12) [1]2) Richedit1.Font.Color:=clRed
← →
Ugh (2003-10-16 02:04) [2]Посмотреть в папке ...Delphi5/Demos/RichEd
← →
SergP (2003-10-16 07:47) [3]
> Ugh (16.10.03 02:04) [2]
> Посмотреть в папке ...Delphi5/Demos/RichEd
Ты хочешь сказать что оно там есть?
← →
Иванько (2003-10-16 18:41) [4]Та не... Это все детское... Тама как раз все сделано как в редакторе - то есть выделяешь текст - нажал пимпу - он свойства ВЫДЕЛЕННОГО текста изменил... Так я сам и реализовал...
А вот как сделать не через выделение?
← →
Иванько (2003-10-16 18:56) [5]а Richedit1.Font.Color:=clRed изменяет не весь текст, а абзац в позиции курсора...
← →
Семен Сорокин (2003-10-16 19:02) [6]может так: сделать невидимый RichEdit (Parent = nil), при изменении в него скопировать текст - изменить, а потом обратно? сам не пробовал, но может красивше будет :)
← →
Иванько (2003-10-16 19:07) [7]я тут не очень умный, уж простите... А парент=нил на кой ляд писать???
А тут такая проблема - копируем мы как раз сам текст, а не форматирование, если пользоваться свойством text... А как все полностью копировать я что то не догоняю....
← →
mOOx_ (2003-10-16 19:11) [8]Я когда-то точно такой же фигней страдал. Проблем было море. Я тут вот чо подумал: веть Lines - это TStrings. Значит есть BeginUpdate и EndUpdate. Что если перед началом изменения сделать бегин, а после, соответственно, енд. Может не так маргать будет.
ЗЫ: влом проект старый поднимать, так что на словах :)
← →
Семен Сорокин (2003-10-16 19:13) [9]создаешь RichEdit в рантайме (парент не присваиваешь), копируешь текст, см.
http://delphimaster.net/view/1-1066312217/
изменяешь, а потом обратно
← →
mOOx_ (2003-10-16 19:13) [10]Все полностью: только что читал в каком-то разделе форума (не помню уже в каком). Делается это через SaveToStream. Не проверял.
← →
mOOx_ (2003-10-16 19:14) [11]Вот и ссылочка поспела :)
← →
Иванько (2003-10-16 19:15) [12]хых... а вот что делают этот BeginUpdate и EndUpdate???
а то под рукой нет документашки???
← →
mOOx_ (2003-10-16 19:21) [13]Они не дают картинке на экране измениться после добавления/изменения данных. Пример:
Lines.BeginUpdate;
Lines.Clear;
Lines.EndUpdate;
Если у тебя в лайнс будет итемов так 1000, то при клеар картинка будет перерисовывать после каждого удаления итема (тоесть 1000 раз). А так, она нарисуется перед удалением и не измениться, пока не сделаешь ендапдате. Надеюсь понятно объяснил :)
Страницы: 1 вся ветка
Текущий архив: 2003.10.27;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.01 c