Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.008 c
2-1197047053
Res
2007-12-07 20:04
2008.01.06
Подскажите


2-1197356647
dumka
2007-12-11 10:04
2008.01.06
Строки


2-1197289338
..::KraN::..
2007-12-10 15:22
2008.01.06
Работа с потоками


2-1196876199
greg123
2007-12-05 20:36
2008.01.06
Изменение цвета, кот. подсвечивается выделенный текст в RichEdit


15-1196530694
][-m@n
2007-12-01 20:38
2008.01.06
TImage




   Наверх