Форум: "Основная";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизРазбираемся с перерисовкой. Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c