![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как избежать пропадания рисунка
тихий вовочка © (2004-05-04 06:34:00)Рисую на канве Image'а, расположенного на панели. Чтобы избежать мерцания выставил у панели DoubleBuffered. Вроде бы все отлично. Так делал уже много раз. Но у меня на панели размещен еще TChart. И при отрисовки кривой на TChart почему-то происходит очистка моего Image'а, да еще черной кистью. Почему так происходит? Ведь, если в Image'е рисовать, то Bitmap там уже будет хранить твой рисунок до опопупения и система при WM_PAINT нарисует все то же самое, что уже хранится в Bitmap'е. Кто-нибудь сталкивался с подобным?
Mihey (2004-05-09 20:10:00) [1]2 Sonic_gd:
Свойство скрыто от Object Inspector. В коде пишешь в onCreate формы:
DoubleBuffered := True;
Или если изображение на панели, то:
Panel1.DoubleBuffered := True;
Sonic_gd (2004-05-09 19:09:00) [2]Слышь, Ваван? А где этот твой DoubleBuffered взять? А то я наверно слепой!!!!!!!!!!
тихий вовочка (2004-05-09 16:46:00) [3]Если это вопрос - не шутка, то расскажу.Все очень просто. Надо у формы или панели выставить св-во DoubleBuffered в true например, при показе формы. А что касается csOpaque, то я его пользовал только при создании компонент - потомков TGraphicControl ControlStyle := ControlStyle + [csFramed, csOpaque];
А мой вопрос нашел вообще идиотское решение - ничего у меня не пропадало, просто в программе есть OpenDialog и когда на имени файла два раза щелкали вместо кнопки открыть, вызывался еще и OnMouseUp для Image и моя прога честно очищала рисунок. Вот так-то
xenos (2004-05-09 01:10:00) [4]ВАВАН, дружище, расскажи поподробнее как ты "делал много раз" избавлялся от мерцаний... Тексейра и Пачеко говорят мол делайте так - мерцаний не будет..., везде говорят +[csOpaque] - вообще не пойму... WM_ERASEBACKGROUND - вообще жуть... Башка пухнет - памаги а? ну хоть кусок кода пришли...