Форум: "Начинающим";
Текущий архив: 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