Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
1-1136877372
SarDoX
2006-01-10 10:16
2006.02.12
Вывод таблицы


9-1125154608
Зм1й
2005-08-27 18:56
2006.02.12
Ресурсы


15-1137648038
begin...end
2006-01-19 08:20
2006.02.12
С Днём рождения! 19 января


15-1137654352
WondeRu
2006-01-19 10:05
2006.02.12
Составление 3D-карты из двух аэро(космо)фотоснимков.


2-1138082247
maxim161
2006-01-24 08:57
2006.02.12
Всплывающие сообщения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский