Вниз
Скачать: 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.026 c
6-1132257651
Иван12345
2005-11-17 23:00
2006.06.25
Перехват данных из входящего трафика


2-1148539864
VitV
2006-05-25 10:51
2006.06.25
Оформление формы.


2-1149680738
logslava
2006-06-07 15:45
2006.06.25
Картинка для SpeedButton


4-1143213561
SkierMax
2006-03-24 18:19
2006.06.25
Список запущенных приложений


3-1146227434
Zhur
2006-04-28 16:30
2006.06.25
KaDAO - проблемы с кодировкой




   Наверх