Главная страница
    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.004 c
8-1172385577
GrayFace
2007-02-25 09:39
2008.01.06
Оптимальная палитра с менее чем 256 цветами


4-1182069154
Nightmare
2007-06-17 12:32
2008.01.06
Рамка


2-1197135168
ученик
2007-12-08 20:32
2008.01.06
Помогите с маской для MaskEdit


3-1188552430
DmitriyG.
2007-08-31 13:27
2008.01.06
Проблемы с записью изменений TClientDataSet в базу


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