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

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

Аналоговые часы


Страницы:   1 2 3 4 5 6

исследователь ©   (2007-08-18 18:14:00) 

Такой вопрос: пишу программку-прото аналоговые часики, для души, с поддержкой скинов. Есть красивые картинки скинов, но фон циферблата в них градиентный. Отсюда вопрос: как закрашивать стрелку по событию таймера так, чтобы не было ее видно, ведь ее нужно будет отрисовывать в другом месте.


исследователь   (2007-08-20 16:16:00) [81]

Может, ты подскажешь?
Я имел ввиду, как ты понял, не свой код, а нашел в инете.


antonn   (2007-08-20 15:39:00) [82]


> Я нашел попиксельное решение, но даже с засовыванием в отделный
> тред прога просто виснет и все.

значит это не решение


Dib@zol   (2007-08-20 14:32:00) [83]

InvalidateRect(<Компонент на который выводишь>.Handle, nil, FALSE);
Это теоретически позволит избежать мерцания.


исследователь   (2007-08-20 13:37:00) [84]

Я нашел попиксельное решение, но даже с засовыванием в отделный тред прога просто виснет и все.


antonn   (2007-08-19 21:17:00) [85]

никаких StretchBlt, попиксельно через scanline со смешением цветов, а то науменьшаешь до "квадратиков":)


@!!ex   (2007-08-19 20:55:00) [86]

> [31] antonn ©   (19.08.07 20:48)

Я думаю мерцание из-за того, что форма перерисовываеться сама.
А насчет сглаживания, зачем уменьшать? Сразу рисовать с StretchBlt.


antonn   (2007-08-19 20:48:00) [87]

решение против мерцания - либо двойной буфер (кстати bltbtn очень быстро работает, с ним не должно быть мерцания), либо выводит окошко через updatelayeredwindow() - понятия мерцать там вообще нет (как и понятия контрол, хыхыхы).
рисовать гладкие линии - антиалиасинг. Простой метод - создавать битмап, в несколько раз больше "обычного", рисовать на нем все стрелки и фон так же в несколько раз больше, а потом в эти несколько раз уменьшать до размеров "обычного"


@!!ex   (2007-08-19 17:40:00) [88]

> Кстати, стала очень заметна рябь при использовании больших
> картинок.

Косяк связанный с тем, что при перерисовке сначала форма заливаеться родным цветом, а потом на нее уже ложиться BitBlt.
Из за этогО, елси например форма синяя, а копируеться белый битмап будет мерцание:
форма при перерисовке заливаеться синим, на нее накладываеться битмап, при перерисовке битмап стирается цветом формы и накладываеться опять.

решения есть, но я их точно не помню, а сейчас лезть искать код мне влом, поищи сам, тут где то не далеко это обсуждали.


исследователь   (2007-08-19 14:46:00) [89]

Да скин я сделал, а как сглаживание юзать?


Vendict   (2007-08-19 12:34:00) [90]

была здесь как-то подобная тема, советовали сглаживание использовать. а по поводу как вырезать дырки из формы, у Флёнова(не ругайте, знаю) был пример.


исследователь   (2007-08-18 23:32:00) [91]

Никто не знает?


исследователь   (2007-08-18 21:38:00) [92]

А как сделать линии плавными? В инете лишь дурацкий урок какой-то, но он не катит, а при изменении максимума x и у в нем на width и height формы она вообще не видна становится


исследователь   (2007-08-18 21:34:00) [93]

Да я уж проверил... все норм... а вот с мерцанием -  это отстой.


antonn   (2007-08-18 21:20:00) [94]

копируй прямоугольные, форму вырезай непрямоугольную, в чем загвоздка?


исследователь   (2007-08-18 20:59:00) [95]

Кстати, стала очень заметна рябь при использовании больших картинок.

И еще: как теперь привязать к этому скины... копируем-то мы ПРЯМОУГОЛЬНЫЙ циферблат, а форма будет НЕПРЯМОУГОЛЬНАЯ...


исследователь   (2007-08-18 20:59:00) [96]

Кстати, стала очень заметна рябь при использовании больших картинок.

И еще: как теперь привязать к этому скины... копируем-то мы ПРЯМОУГОЛЬНЫЙ циферблат, а форма будет НЕПРЯМОУГОЛЬНАЯ...


Ricks   (2007-08-18 20:49:00) [97]

ты потратишь больше памяти на копирование непрямоугольной картинки...


исследователь   (2007-08-18 20:41:00) [98]

Нет, 2 гига, но все же...


antonn   (2007-08-18 20:40:00) [99]

у тебя памяти 16Мб?


исследователь   (2007-08-18 20:18:00) [100]

А вариант копировать только там, где стрелочка прорисовалась? Так и памяти жрать меньше будет


Страницы:   1 2 3 4 5 6

Наверх

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