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

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

RichEdit моргает!! [D5, WinXP]


VCL ©   (2002-04-11 15:40:00) 

Здравствуйте, у меня такой вопрос - я использую компонент RichEdit, изменяю формат вводимого текста по нажатии на клавишу (по WM_KEYUP) - для этого мне приходится отключать ReDraw при помощи посылки сообщения WM_SETREDRAW, потом включать. После этого приходится перерисовывать весь компонент:
InvalidateRect(RichEdit1.Handle, 0, false);
Но этот метод слишком моргает :(( то есть перерисовка происходит оччень погано. Как перерисовать часть текста (т.е. как получить ее Range) - я не знаю.
Пож-ста, посоветуйте кто-нить как избавиться от этой проблемы. Заранее благодарен.


VCL   (2002-04-28 22:59:00) [1]

Что под этим понимается?? Я сначала блокирую ReDraw, потом включаю (это чтобы не было видно выделения текста), а что такое lock И unlock???


KilkennyCat   (2002-04-27 10:54:00) [2]

По-моему, можно еще делать lock и unlock перед и после изменений.


Nikolay M.   (2002-04-26 13:38:00) [3]

Может я старею и чего не понимаю...
Но если нужно поменять, например, цвет только части текста, достаточно знать про свойства RichEdit-а SelStart, SelLength и SelAttributes. Если я правильно понял вопрос...


gek   (2002-04-26 12:20:00) [4]

А если beginUpdate endupdate


Dy-Ty   (2002-04-26 12:11:00) [5]

а UpdateWindowне пробовал ?


KilkennyCat   (2002-04-26 03:13:00) [6]

Возьми другой компонент, например Ткаченковский TrichView


VCL   (2002-04-25 21:57:00) [7]

Нет, нужно что-нить помощнее...


MBo   (2002-04-19 22:57:00) [8]

у меня помогает.


VCL   (2002-04-19 22:45:00) [9]

Это никак не помогло...


MBo   (2002-04-19 22:33:00) [10]

для формы
doublebuffered:=true;


VCL   (2002-04-19 22:26:00) [11]

Что, совсем никто не знает??


VCL   (2002-04-11 23:30:00) [12]

Нет, я имею ввиду изменение формата части текста - шрифт, цвет. Для этого надо выделить часть текста, потом заменить у выделенной формат. Мне, по крайней мере, известен тока этот способ...
Получить Range - получить координаты того прямоугольника, текст в котором изменился, чтобы весь компонент не перерисовывать...


JibSkeart   (2002-04-11 16:18:00) [13]

Нет а RichEdit1.Lines[x]
некатит чтоль все что хош то и делай с текстом
или я что то не так понял ??
И что значит получить ее Range ?


Наверх

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