Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1149422375
JTAG
2006-06-04 15:59
2006.06.25
Господа подскажите пожалуйста как сделать чтобы в таблицу


1-1148140579
yahaha
2006-05-20 19:56
2006.06.25
Список доступных шрифтов


15-1148997561
AlexanderMS
2006-05-30 17:59
2006.06.25
"Мастер Delphi"


11-1129621644
Боб
2005-10-18 11:47
2006.06.25
KOLECMLISTEDIT ошибки при компиляции


1-1147277774
swan
2006-05-10 20:16
2006.06.25
ПИД-регулирование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский