Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
oh my god
1455 / 794 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
1
Excel

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

05.04.2019, 15:12. Показов 3761. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Некоторое время назад искал в интернете реализацию таймера для vba
Есть метод отложенного запуска OnTime Который подмораживает программу, и не дает возможности делать
обновление быстрее секунды, так-же находил методы с системными winApi (SetTimer - Killtimer), в которых есть
свои плюсы, но тоже не устраивает из за громоздкости написания кодов.

Поэтому пришел к проверенному мною уже не раз, к наиболее удобному способу.
тоесть серез do .. loop и doEvents
В процессе моих поисков я задавал поисковым системам различные запросы, и с удивлением обнаружил что
таких разработок как например аналоговые часы в Excel и такого рода реализаций в интернете вообще нет.
а если даже и есть, то они находятся гдето на уровне начальной разработки
Существует не малый спрос в этом.

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

У меня аналоговые часы на основе функции Rotation и игральные кости
Миниатюры
Аналоговые часы +  
Вложения
Тип файла: rar Аналоговые часы+.rar (30.3 Кб, 52 просмотров)
3
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2019, 15:12
Ответы с готовыми решениями:

VBA Excel аналоговые часы
Хочу сделать аналоговые часы в Ексель на VBA. Обычно разрабатываю программы на языке C#, в этот...

Аналоговые часы
Опишу свою траблу:Создаю аналоговые часы в С++ Builder.Вроде бы сам алгоритм понятен, как работать...

аналоговые часы на C#
задание по сути таково что надо сделать часы со стрелками: часовой, минутной и секундной. а время...

Аналоговые часы на C++
Выкладываю свою курсовую по теме "Аналоговые часы" с использованием графической библиотеки...

7
oh my god
1455 / 794 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
05.04.2019, 21:24  [ТС] 2
Для тех кто уже смотрит, обратите внимание что нет никаких заморозок процесса (и нагрузки на общий процесс), после запуска можно спокойно продолжать редактировать править и тд. (не проверял на всех версиях) задействован только один лист, в нем идет необходимая обработка, там не больше -не меньше более сотни действий производится

Добавлено через 5 часов 18 минут
Некоторые улучшения:
- Улучшены вычисления координат
- Добавлена возможность менять цвет стрелок
Миниатюры
Аналоговые часы +  
Вложения
Тип файла: rar Аналоговые часы+.rar (31.4 Кб, 56 просмотров)
1
fever brain
06.04.2019, 00:19  [ТС]
  #3

Не по теме:

---

0
3 / 2 / 1
Регистрация: 14.05.2019
Сообщений: 5
14.05.2019, 12:00 4
Лучший ответ Сообщение было отмечено fever brain как решение

Решение

Готовое решение с подробным описанием:
https://exceltable.com/shablon... -diagrammy
Миниатюры
Аналоговые часы +  
2
3 / 3 / 0
Регистрация: 27.11.2015
Сообщений: 11
27.05.2019, 14:55 5
fever brain, доброго времени.
Пробую на юзер-форме сделать обычные часы (часы:минуты:секунды), но столкнулся с такими проблемами:
- метод Application.OnTime приводит к мерцанию курсора и решений этой проблемы по-видимому нет.
- функция DoEvents с использованием цикла приводит к нагрузке на процессор (~20%).
Подскажите, возможно Вы знаете способ как решить такую задачу или обойти вышеописанные неприятности.
0
oh my god
1455 / 794 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
28.05.2019, 21:38  [ТС] 6
Цитата Сообщение от oplrox Посмотреть сообщение
функция DoEvents с использованием цикла приводит к нагрузке на процессор
У меня в цикле do...loop есть еще функция win-api sleep
DoEvents - опрашивает возникшие события в программе
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub StartTamer()
    Shapes(Application.Caller).Visible = 1
    Call CreateLine
    isRun = True
    Do While isRun
        DoEvents
        Sleep 50
        Call TmrTick
    Loop
End Sub
Объявляется примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
#If VBA7 Then
    #If Win64 Then
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
    #Else
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
Частота задержки sleep ~50 герц
Никаких мерцаний не видно, можно работать, правда есть некоторые ограничения с перетаскиванием и тп
На форме куда проще реализовать чем на рабочем листе.
Наиболее подходящим решением в этом случае с диаграммами как у excelvisual

Кстати у него тоже используется бесконечный цикл, с оператором DoEvents - только цикл реализован с помощью GoTo
1
3 / 3 / 0
Регистрация: 27.11.2015
Сообщений: 11
29.05.2019, 03:42 7
Спасибо за ответ, буду пробовать.
0
Модератор
9904 / 3808 / 879
Регистрация: 22.02.2013
Сообщений: 5,679
Записей в блоге: 78
29.05.2019, 10:23 8
Цитата Сообщение от fever brain Посмотреть сообщение
У меня в цикле do...loop есть еще функция win-api sleep
DoEvents - опрашивает возникшие события в программе
Лучше прогнать цикл обработки сообщений (GetMessage/TranslateMessage/DispatchMessage), и никаких подвисаний не будет.
1
29.05.2019, 10:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2019, 10:23
Помогаю со студенческими работами здесь

Аналоговые часы
читаю вот эти статьи, хочу попробовать написать аналоговые часы, не знаю как описать с помощью XAML...

С++ аналоговые часы
Помогите пожалуйста !! нарисовала часы, но они не идут, может кто знает?!! Спасибо :) #include...

Аналоговые часы
Что было сделано: -нарисованы все стрелки, сам круг. -Все стрелки двигаются. Что хочу...

Аналоговые часы
Сделал часы, секундная и минутная стрелки отображают корректное время, а вот с часовой беда. Вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru