Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];

Вниз

Мерцание раб области   Найти похожие ветки 

 
fics   (2007-12-10 12:41) [0]

Здравствуйте уважаемые. Такой вот вопрос к вам, есть
ScrollBox в нём Panel 6000 на 3000 px на Panel-е PaintBox (align=alClient) Создаю в этой области разные компоненты, рисую линии и тд. Но как избежать мерцания, я знаю что можно использовать DaubleBuffered для Parent, то есть Panel - a, но для такой рабочей области DaubleBuffered сильно тормозит работу. не пойму как использовать тогда Invalidate или вообще как решить эту проблему?


 
Рамиль ©   (2007-12-10 12:50) [1]

Надо рисовать только в пределах видимой пользователю области, а не 6000 на 3000. Где ты такой монитор видел?
И в OnPaint перерисовывать только недействительную область.


 
fics   (2007-12-10 12:58) [2]

Да причём монитор, просто схему нужно составлять а не хватает места.
А как это сделать- перерисовывть только недействительную область?
Ну мне нужно всё перерисовывать, а эфект DoubleBufer хотелось бы иметь только для видимой области.


 
Рамиль ©   (2007-12-10 13:01) [3]

Не нужно тебе все перерисовывать. Зачем рисовать то, что не видно?


 
fics   (2007-12-10 13:04) [4]

И то правильно.


 
fics   (2007-12-10 13:06) [5]

Ну а как же сделать чтобы не мерцало?


 
{RASkov} ©   (2007-12-10 13:08) [6]

> [5] fics   (10.12.07 13:06)

Рисуй видимую(!) область во временном битмапе, а потом целиком копируй на канву....


 
Рамиль ©   (2007-12-10 13:44) [7]


> Ну а как же сделать чтобы не мерцало?

Поставишь DoubleBuffered и не будет мерцать.


 
fics   (2007-12-10 13:49) [8]

но будет тормозить!!!


 
homm ©   (2007-12-10 13:49) [9]

> [7] Рамиль ©   (10.12.07 13:44)
> Поставишь DoubleBuffered и не будет мерцать.

А теперь прочти все сообщение, а не только первую строку.


 
Рамиль ©   (2007-12-10 15:08) [10]


> fics   (10.12.07 13:49) [8]

Не будет, если последуешь советам [1] и [3].

> homm ©   (10.12.07 13:49) [9]

Ну, прочитал еще раз и что?


 
homm ©   (2007-12-10 15:09) [11]

> [10] Рамиль ©   (10.12.07 15:08)
> Ну, прочитал еще раз и что?

А то, что автор в курсе сего замечательного свойства. Но ведь это же не имеет значения, главное что ты умнее.


 
Dib@zol ©   (2007-12-10 15:11) [12]

В онПаинте проходишь по свем дочерним контролам своего СкроллБокса и узнаёшь какой у каждого регион. И пользуешь ValidateRect. А потом вручную подаёшь дочерним контролам команду на перерисовку.


 
Рамиль ©   (2007-12-10 15:14) [13]


> homm ©   (10.12.07 15:09) [11]

Автор жаловался, что при DoubleBuffered тормозит.
Если рисовать только видимую область и выкинуть TScrollBox тормозить не будет.
Так понятнее? Разжуй и в рот еще положи что ли?


 
homm ©   (2007-12-10 15:18) [14]

> [13] Рамиль ©   (10.12.07 15:14)

Не заметил, что предъидущие ответы тоже твои. В свете [1] все встает на свои места.



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

Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
9-1164923413
Gigatrop
2006-12-01 00:50
2008.01.06
Проблемы с координатами


15-1196756239
Галинка
2007-12-04 11:17
2008.01.06
А что читаем? (и аудиокниги в том числе)


2-1197368334
Alexandr Malygin
2007-12-11 13:18
2008.01.06
округление


2-1196762147
olgasato
2007-12-04 12:55
2008.01.06
Очередь и Стек (Динамические структуры данных)


15-1196712934
Ega23
2007-12-03 23:15
2008.01.06
А вот посоветуйте какую-нибудь статью





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