Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.10.2010, 19:52
Аватар для kachkarvv
kachkarvv kachkarvv вне форума
Прохожий
 
Регистрация: 07.10.2010
Адрес: Украина Черкасская обл. с.Матусов
Сообщения: 23
Репутация: 16
По умолчанию Delphi WinAPI Analog Clock

Простой пример стрелочных часов. Имеется возможность перетаскивания по экрану левой кнопкой мышки, вызов PopUp-меню ( с 1-м пунктом "отключение" ) правой кнопкой. Круглый циферблат создан функцией
WinAPI создания региона: CreateEllipticRgn.
Исходник на http://kachkarvv.ru/faq/src-delphi/d...alog-clock.htmdelphi-analog-clock.jpg

Последний раз редактировалось kachkarvv, 08.08.2012 в 14:57.
Ответить с цитированием
  #2  
Старый 16.10.2010, 20:32
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

неплохо! можно переписать на GDI+, будет еще лучше и быстрее
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #3  
Старый 19.10.2010, 23:12
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

Цитата:
Сообщение от KOOL
неплохо! можно переписать на GDI+, будет еще лучше и быстрее
GDI+ медленнее чем GDI
__________________
Arrrgh
Ответить с цитированием
  #4  
Старый 20.10.2010, 00:36
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

в чем-то медленнее, в чем-то быстрее. GDI+ использует аппаратное ускорение - это уже плюс. Их надо вместе использовать, просто надо знать, что через что реализовывать
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #5  
Старый 28.10.2010, 22:22
Аватар для kachkarvv
kachkarvv kachkarvv вне форума
Прохожий
 
Регистрация: 07.10.2010
Адрес: Украина Черкасская обл. с.Матусов
Сообщения: 23
Репутация: 16
По умолчанию

Цитата:
Сообщение от KOOL
можно переписать на GDI+
Спасибо. Сделал вариант на GDI+, OLE, WinAPI. Исчезли ступеньки стрелок благодаря ф-и GDI+ graphics.SetSmoothingMode(SmoothingModeAntiAlias). Размер екзешника 27кб.
Скачать EXE (delphi_clock_ole_gdi_res.zip) на http://kachkarvv.ru/download/files-delphi.php
Исходник на http://kachkarvv.ru/faq/src-delphi/d...le-gdi-res.htm
delphi_clock_ole_gdi_res.jpg

Последний раз редактировалось kachkarvv, 08.08.2012 в 14:59.
Ответить с цитированием
  #6  
Старый 28.10.2010, 22:51
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Весьма неплохо.
1. Размер надо-бы изменяемый сделать. Отрисовать подложку можно и без картинки ручками, благо фон несложный.
2. Периодические мигания стрелок, видимо вывод идет не в промежуточный битмап, а напрямую.
3. В какой-то моент вся группа стрелок сдвинулась вверх на несколько пикселей, затем снова вернулась на место.
4. Часы диверсанта получились - бесшумные.
5. Добавить туда-эе календарь в окошке, как это принято в наручных часах.
6. Нет настройки времени из часов.
7. Функцию будильника можно добавить.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 28.10.2010 в 22:53.
Ответить с цитированием
  #7  
Старый 29.10.2010, 01:36
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
Хорошо

стало гораздо лучше! Но, конечно, есть что подточить. кое-что уже сказано
Цитата:
1. Размер надо-бы изменяемый сделать.
2. Периодические мигания стрелок, видимо вывод идет не в промежуточный битмап, а напрямую.
ну и неплохо было бы скины внедрить - стрелки можно тоже картинками сделать, GDI+ может поворачивать их. ну и полноценную прозрачность - через png и UpdateLayeredWindow

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

код для поддержки прозрачности могу подсказать если что
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #8  
Старый 29.10.2010, 16:28
Аватар для kachkarvv
kachkarvv kachkarvv вне форума
Прохожий
 
Регистрация: 07.10.2010
Адрес: Украина Черкасская обл. с.Матусов
Сообщения: 23
Репутация: 16
По умолчанию

Цитата:
Сообщение от KOOL
.ну число и день недели разве что еще показывать.
Число и день можно добавить
1.на этот же циферблат,
2.удлинить циферблат вверх или вниз и писать там
3.сделать отдельно календарь (этот вариант у меня на сайте есть на C++)

Как лучше?

Последний раз редактировалось kachkarvv, 30.10.2010 в 02:52.
Ответить с цитированием
  #9  
Старый 29.10.2010, 18:32
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

1 и 2 можно сделать настройкой скина, если конечно внедрить их. если без скинов, то на том же циферблате поэстетичнее будет смотреться (как в наручных часах)
3-например при нажатии на область с числом и днем открывать календарь в отдельном окне. тут правда подводные камни есть при использовании альфа-канала: такие окна не могут содержать дочерние окна, в т.ч. и кнопки
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #10  
Старый 30.10.2010, 02:24
Аватар для kachkarvv
kachkarvv kachkarvv вне форума
Прохожий
 
Регистрация: 07.10.2010
Адрес: Украина Черкасская обл. с.Матусов
Сообщения: 23
Репутация: 16
По умолчанию

Цитата:
Сообщение от Страдалецъ
2. Периодические мигания стрелок, видимо вывод идет не в промежуточный битмап, а напрямую.
Спасибо. Вы правы, но была ещё одна причина: в ф-и InvalidateRect последний параметр был TRUE, поставил FALSE и всё стало в норму.
Екзешник и исходник обновил.

Ещё попробовал дорисовать время и дату (приложил скриншот). Дизайнер с меня далеко не супер, поэтому хотел бы узнать Ваше мнение. Может изменить цвета меток, текста, стрелок и т.д.
Лично мне больше нравится предыдущий вариант (без календаря), думаю из-за того, что в моём календаре что-то лишнее или чего-то нехватает ???
_PROEKT.jpg

Последний раз редактировалось kachkarvv, 15.11.2010 в 01:17.
Ответить с цитированием
  #11  
Старый 30.10.2010, 13:49
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

а по мойму отлично выглядит, кокрас в тему
Ответить с цитированием
  #12  
Старый 07.11.2010, 14:51
Аватар для kachkarvv
kachkarvv kachkarvv вне форума
Прохожий
 
Регистрация: 07.10.2010
Адрес: Украина Черкасская обл. с.Матусов
Сообщения: 23
Репутация: 16
По умолчанию Показ даты

Цитата:
Сообщение от KOOL
число и день недели разве что еще показывать
Добавил год, месяц, число, день недели (воскресенье-красным цветом), запоминание местоположения, немного изменил вид стрелок.
Исходник на http://kachkarvv.ru/faq/src-delphi/d...alog-clock.htm
Екзешник ( delphi-gdi-ole-analog-clock.zip ) на http://kachkarvv.ru/download/files-delphi.php
_PROEKT.jpg

Надеюсь, эти рисунки будут получше?

gdi-analog-clock-200-f.zip(левый) и gdi-analog-clock-200.zip(центр) здесь

Извините, поздно вспомнил: Всем спасибо за помощь!
Изображения
Тип файла: jpg scrsh-200-all.jpg (27.8 Кбайт, 15 просмотров)

Последний раз редактировалось kachkarvv, 08.08.2012 в 15:01.
Ответить с цитированием
  #13  
Старый 08.11.2010, 02:28
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Немного изменил код. Теперь можно использовать разные фоновые png изображения разных размеров (даже неквадратные) - зачаток скинов.


Exe+Source

З.Ы. Кажется, я сломал иконку
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #14  
Старый 08.11.2010, 06:03
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, у меня не запустились.
просто разпаковал куда-то... и попробовал запустить. ноль внимания, фунт презрения. Как я понял по коду, там есть какая-то привязка к некоторым папкам. вот тут то оно и не срабатывает, бо как разпаковал куда-то, где удобнее было.
Ответить с цитированием
  #15  
Старый 08.11.2010, 11:28
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Поправил, дело было в загрузке из ini.
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter