Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1196756239
Галинка
2007-12-04 11:17
2008.01.06
А что читаем? (и аудиокниги в том числе)


15-1196592345
homm
2007-12-02 13:45
2008.01.06
Вот так вот получается


15-1196688836
Некто__
2007-12-03 16:33
2008.01.06
Можно ли найти такую ветку?


3-1188292275
Егоров А.Н.
2007-08-28 13:11
2008.01.06
locate в базах IB


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