Главная страница
    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.014 c
2-1149517596
Тимофей Юрьевич
2006-06-05 18:26
2006.06.25
код из txt в обработчик onclick


2-1149604960
Alex>
2006-06-06 18:42
2006.06.25
Массив записей


5-1134398300
Domkrat
2005-12-12 17:38
2006.06.25
ScrollBar width


15-1149024510
asdfgb
2006-05-31 01:28
2006.06.25
Комплексные автоматиpированные системы


2-1149600623
VitV
2006-06-06 17:30
2006.06.25
interbase+delphi связывание таблиц





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский