Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Непонятки с выводом


-matrix- ©   (2006-01-17 02:11:00) 

Предисловие
Как-то, года полтора назад, наткнулся я на программу Beeline GPRS Explorer. Программа интересная, суть такова: она автоматически создавала GPRS соединения (чтобы не приходилось долго и нудно их настраивать), вела учет исходящего и входящего траффика, подсчитывала скорости, и - что мне особенно понравилось - выводила график, в котором отображался траффик. Эта идея показалась мне заманчивой, и я после недавнего Нового года решил создать примерно такой же логгер, но с более богатыми настройками и возможностями. По мере свободного времени стал создавать функции (типом Tbitmap), в которых этот график прорисовывался (сделал его 3х мерным). На днях я их доделал, проверил - все работает. Оставалось осуществить одну, как мне думалось,  мелочь - вывести результат на экран, а не на canvas формы, как при тестировании. Решил сделать это через bitblt, выводом в правом нижнем углу экрана. Но проблемы стали появляться одна за другой - остатки графика стали оставаться на окнах (при прокрутке страницы вниз в опере сверху графика появлялись еще штуки 3-4), медленное обновление заднего фона. Не будешь же все окна обновлять каждую секунду?
Решил потестировать grps explorer. Что я только не делал - и быстро сменял картинки за графиком, и окна двигал, и щелкал через него, и drag'n'drop'ил, даже текст левой кнопкой мыши выделял - все работает, хоть бы хны этой программе... И ведь быстро, красиво выводит, а ресурсов - 2-4% моего 700го Celeron'а + 2Мб оперативы. И это в самый пик работы.
А вот, и собственно, вопрос: КАКона это делает?


TUser   (2006-01-17 05:18:00) [1]

Попробуй Canvas.Handle:=GetDC(0);

не забудь ReleaseDC.

А почему ты не хочешь на форму выводить график?


Наверх

Титульная страница Поиск, карта сайта Написать письмо