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

Вниз

Обновить одновременно?   Найти похожие ветки 

 
capkoh ©   (2005-08-21 13:46) [0]

Пишу компонент - плоский ProgressBar. У него заполняется полоска и рисуется сверху процент (как у Gauge, но более точный). Возникла проблема одновременного обновления текущего прогресса и текста (процентов выполнения) сверху прогресса. Компонент рисую на Canvas. Можно ли запретить Canvas обновляться до некоторого момента, чтобы и текст и компонент обновлялись одновременно? Логично, что это требуется для того, чтобы компонент меньше "мерцал". Однако, есть еще вариант обновлять только текст (чаще) и прогресс (реже) независимо. Но тут непонятно как обновить изображение под текстом...


 
Юрий Зотов ©   (2005-08-21 15:10) [1]

Можно рисовать на временном битмапе (в памяти), а потом разом переносить весь битмап на канву компонента.


 
capkoh ©   (2005-08-21 16:35) [2]

В этом случае, лучше создавать/уничтожать bitmap внутри самой процедуры рисования, или лучше сделать ее компонентом класса и создавать/уничтожать однажды?


 
Джо ©   (2005-08-21 16:36) [3]


> [2] capkoh ©   (21.08.05 16:35)

It"s up to you.


 
Джо ©   (2005-08-21 16:44) [4]

В общем случае, если битмэп не будет слишком большим (а это, похоже, как раз тот случай), то - без разницы.


 
capkoh ©   (2005-08-21 17:04) [5]

Да, с временным bitmap стало гораздо лучше! Спасибо.


 
Igorek ©   (2005-08-23 09:37) [6]


> чтобы и текст и компонент обновлялись одновременно?

Не вижу проблемы. Это все обновляется по наступлении события, которое посылает система. В методе Paint рисуешь все. При изменении чего-то (текста или полосы) вызываешь Invalidate. Система сама вызовет Paint.

> Юрий Зотов ©   (21.08.05 15:10) [1]
> Можно рисовать на временном битмапе (в памяти), а потом
> разом переносить весь битмап на канву компонента.

DoubleBuffered?


 
capkoh ©   (2005-08-23 15:54) [7]

[6] - У меня рисуется сначала полоса, потом, сверху, текст. При этом, если рисовать прямо на Canvas, то будет хорошо заметно мерцание (при затирке текста полосой и его (текста) рисовании вновь). Это становится сильно заметно при быстром изменении значения выполнения. При одновременном обновлении (рисовании с готовой заготовки) этого эффекта не возникает => мерцания меньше => лучше.


 
Igorek ©   (2005-08-23 16:39) [8]


> прямо на Canvas, то будет хорошо заметно мерцание (при затирке
> текста полосой и его (текста) рисовании вновь).

DoubleBuffered
все уже придумано


 
TStas ©   (2005-08-23 23:29) [9]

>Юрий Зотов
Я так рисовал циферки с тенью, это и есть общепринятый способ?



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
1-1137157199
manefesto
2006-01-13 15:59
2006.02.12
Создание объектов в dll и создание обработчиков для них.


2-1138173689
emergency
2006-01-25 10:21
2006.02.12
Литература по работе с сетями


3-1134135704
DSKalugin
2005-12-09 16:41
2006.02.12
like % - не работает. Почему?


2-1138009907
Andrey235
2006-01-23 12:51
2006.02.12
Отправка и прием переменных типа record в сети


8-1125205449
zeram
2005-08-28 09:04
2006.02.12
Работа с gif (изменение цвета).