Вниз
Скачать: CL | DM;

Разбираемся с перерисовкой.   Найти похожие ветки 

← →
RUNaum ©   (2006-05-18 13:55) [0]

Ситуация следующая.

Есть панель, которая перемещается мышью (спасибо за помощь Мастерам в ветке http://delphimaster.net/view/1-1147543175/). Если на панели нету контента, то все отлично, никаких морганий, движение плавное.

Как только на панели появляется контент - при движении периодически становится видно панель, лежащую под контентом (она серого цвета и сразу заметны серые "вспышки"). Как можно избавиться от этого эффекта?

з.ы. контент third-party разработчика, информация в нем динамически изменяется.


← →
Kolan ©   (2006-05-18 15:34) [1]

DoubleBufferd := True?


← →
RUNaum ©   (2006-05-18 16:44) [2]

Да. Первым делом его включил (


← →
Джо ©   (2006-05-18 16:47) [3]

Напиши своего наследника панели. Перекрывай в нем WM_ERASEBKGND и ничего в нем не делай. Вроде в таком духе.


← →
RUNaum ©   (2006-05-18 16:50) [4]

Именно ничего или что-то вернуть в Message.Result? Я справку почитал, не допонял как лучше ) либо заглушкой, либо 1 вернуть...


← →
Джо ©   (2006-05-18 16:51) [5]

Ну да, конечно, вернуть 1.


← →
RUNaum ©   (2006-05-18 16:54) [6]

ок, спасибо, щас попробую


← →
RUNaum ©   (2006-05-18 17:03) [7]

даже не знаю что сказать =(

TNRPanel = class(TPanel)
protected
procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
end;


procedure TNRPanel.WMEraseBkgnd(var Msg: TWMEraseBkgnd);
begin
Msg.Result:=1;
end;


то же самое. динамически изменяющийся контент такое ощущение что спорит с панелью... вспышки при перемещении остались ( буду ломать голову дальше. может у кого есть еще идеи?


← →
REA   (2006-05-18 17:28) [8]

А учел, что я писал про SetWindowPos?


← →
RUNaum ©   (2006-05-18 17:29) [9]

Да, использую последнюю твою версию =) Немного исправленную, но все же. Там Ofs.X:=-1 не в том месте стоял, а так вариант отличный просто.


← →
REA   (2006-05-19 11:10) [10]

Такое может наблюдаться, если на форме под панелью лежат компоненты не имеющие оконных Handle-ов, которые долго перерисовываются (например картинки). На момент перетаскивания желательно как то оптимизировать их отрисовку или вообще скрыть. (При этом Panel1.DoubleBuffered только усугубляет ситуацию.)


← →
Loginov Dmitry ©   (2006-05-19 20:59) [11]

Попробуйте поиграться со свойством FullRepaint панели.


← →
RUNaum ©   (2006-05-19 22:31) [12]

ОГРОМНОЕ СПАСИБО!!! Все как надо )



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
1-1147925148
apl
2006-05-18 08:05
2006.06.25
Как преобразовать TFileTime


3-1146564654
wirg
2006-05-02 14:10
2006.06.25
Помогите с кавычками


3-1146332166
Express
2006-04-29 21:36
2006.06.25
ADOCommand – как перейти на следующую запись???


2-1149447531
ZV
2006-06-04 22:58
2006.06.25
Focus on - off


15-1149219997
DelphiN!
2006-06-02 07:46
2006.06.25
Component list в BDS 2006




   Наверх