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

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

Как перерисовать Scroll у TRichEdit`а ? [D6, WinXP]


leonidus ©   (2007-05-25 10:07:00) 

Проблема вот в чем, после заполнения RichEdit данными, у меня не всегда корректно прорисовывается вертикальный ScrollBar, точнее сама полоса прокрутки нормально видна, а вот стрелки вверх и вниз не видны пока я на них не наведу курсор. Я подумал что можно найти ScrollBar через FindWindow и потом сделав sendmessage отправить ему сообщение WM_REPAINT. Но почему-то не получается найти хэндл ScrollBar RichEdit`а. Помогите пожалуйста разобраться.


clickmaker   (2007-05-30 11:28:00) [1]


> [10] homm ©   (30.05.07 11:17)

ну в смысле, непонятно, если HideScrollbars = False, ScrollBars = ssVertical, то до заполнения они тоже без стрелок или нормальные?
Если HideScrollbars = True, то понятно, что нормально


homm   (2007-05-30 11:17:00) [2]

> а до заполнения?

А до заполнения и так же все нормально. Зачем перерисовывать то?


clickmaker   (2007-05-30 10:59:00) [3]


> leonidus ©   (25.05.07 10:07)
> Проблема вот в чем, после заполнения RichEdit данными

а до заполнения? И как заполняешь?

странный глюк, вообще-то. Ни разу не наблюдал


clickmaker   (2007-05-30 10:45:00) [4]


> [6] homm ©   (29.05.07 21:13)
> SendMessage(NC_PAINT, <далее по справке>);

RedrawWindow(form8.RichEdit.Handle, nil, 0, RDW_INVALIDATE or RDW_UPDATENOW or RDW_FRAME);


homm   (2007-05-29 21:27:00) [5]

Сори за дезинфу.
WM_NCPAINT


homm   (2007-05-29 21:13:00) [6]

SendMessage(NC_PAINT, <далее по справке>);


capkoh   (2007-05-29 20:50:00) [7]

Естественно, что делаете это ПОСЛЕ заполнения данными? В самом конце? А вообще, можно посоветовать ещё вот такое попробовать:

SendMessage(RichEdit1.Handle, WM_NCPAINT, 1, 0);


leonidus   (2007-05-29 16:15:00) [8]

господа, подскажите еще какую нибудь идею...


leonidus   (2007-05-28 11:05:00) [9]

Ничего не помогает, перепробовал все, делаю так:

form8.RichEdit.Invalidate;
InvalidateRect(form8.RichEdit.Handle, nil, true);
RedrawWindow(form8.RichEdit.Handle, nil, 0, RDW_UPDATENOW);

в чем же засада?


leonidus   (2007-05-25 13:56:00) [10]

Сделал:

        InvalidateRect(form8.RichEdit1.Handle, nil, true);
        RedrawWindow(form8.RichEdit1, nil, 0, RDW_UPDATENOW);

толку ноль...


clickmaker   (2007-05-25 12:48:00) [11]

InvalidateRect(RichEdit.Handle, nil, true)?
RedrawWindow(RichEdit.Handle, ...)?
у ричэдита нету отдельных скролбаров с хэндлами - они рисуются


Наверх

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