C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Активная графика на TCanvas, Частая перерисовка экрана
Cahes
Отправлено: 09.04.2005, 08:33


Не зарегистрирован







Здравствуйте!

Столкнулся с такой проблемой: в создаваемой мною программе очень часто приходится использовать методы рисования класса TCanvas! Это происходит под управлением таймера с частотой примерно в 500 ms.
Побочный эффект такой активной графики — постоянно бегующие по канве полосы (снизу вверх как на ненастроенном телефизоре).

Так как общий цвет канвы у меня белый, то эта неприятность создает отвратительное впечатление от программы.

Вопрос ественнен: как этого можно избежать? Простой пример — во многих редакторах мигает курсор, но от этого же ничего страшного не происходит!

Заранее спасибо за ответ!
exp
Отправлено: 09.04.2005, 10:19


Мастер участка

Группа: Участник
Сообщений: 304



на FormCreate повесь
CODE

Form1->ControlStyle << csOpaque;
Form1->DoubleBuffered = true;
** Cahes
Отправлено: 09.04.2005, 11:28


Не зарегистрирован







2exp: Спасибо, все заработало!

Смысл второй инструкции я более-менее понял, а в чем заслуга 1-го оператора?
Sl@Sh
Отправлено: 09.04.2005, 12:02


Мастер участка

Группа: Участник
Сообщений: 383



csOpaque — The control completely fills its client rectangle.
Так в хелпе написано.

Хочу добавить, что использовать DoubleBuffered = true лучше только
когда вы рисуете на холсте. Этот параметр указывает на то, что прорисовка будет выполнена в памяти, а значит жрёт дополнительную память.

Успехов !

Вернуться в Вопросы программирования в C++Builder