Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
28.01.2016, 17:23

Таймер на форме. Запуск по нажатию кнопки

28.01.2016, 17:23. Показов 5009. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер форумчане, подскажите или поделитесь ссылкой на готовый вариант.

Хочу сделать на форме поле-таймер. Запускаемый по кнопке.
Идея-форма для прохождения теста. Человек заходит на форму, читает правила, нажимает кнопку-запускается тест. И только тогда появляется таймер.

Реализовал следующим образом.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Compare Database
Option Explicit
 
Private Начало, Интервал As Date
 
Private Sub Form_Timer()
   Me.Таймер = Интервал - (Now() - Начало)
End Sub
 
Private Sub Старт_Click()
Интервал = Me.Поле3.Value
Начало = Now()
Me.Таймер = Интервал - (Now() - Начало)
End Sub
Но мне не очень нравится, подскажите как реализовать следующее:
1 Поле в котором задается время отсчета, моно было бы просто ввести 30 и он понял, что это 30 мин. А не вводить в формате 0:30:00
2 Пока кнопка не была нажата, в поле таймер. Не выводилось бы вообще ничего. А то он начинает считать по загрузке формы от системного времени (можно конечно, скрыть это поля до нажатия кнопки, но может есть более красивый вариант решения)

Спасибо за любую помощь
Вложения
Тип файла: 7z Timer.7z (13.9 Кб, 27 просмотров)
0
28.01.2016, 17:23
Ответы с готовыми решениями:

Запуск Exel файла из вложения в базе по нажатию кнопки в форме
Добрый день! Подскажите, возможно ли реализовать запуск exel файла, который будет хранится в таблице в типе поля "вложение"??? ...

Запуск таймера на второй форме по нажатию кнопки на первой
Добрый день, столкнулся с проблемой, имеются 2 формы, нужно что бы таймер запускался во второй форме при нажатии на кнопку начать в первой...

Нарисовать домик по нажатию кнопки, и звезду по нажатию на форме
Нарисовать домик по нажатию кнопки и звезду по нажатию на форме

8
26828
28.01.2016, 17:31
Только сегодня сделал примерчик для кухонных нужд
По умолчанию там 20 минут, но введите 0.1 и понаблюдайте как через 6 секунд форма возбудится. Десятичный разделитель ставить конечно Ваш. У меня точка. У Вас может быть запятая.
Вложения
Тип файла: rar Будильник.rar (13.3 Кб, 95 просмотров)
2
 Аватар для Kkarn
902
28.01.2016, 17:32
Цитата Сообщение от mobile Посмотреть сообщение
как через 6 секунд форма возбудится
Ого))) Такое реально интересно было бы понаблюдать))) Вы сегодня прямо в ударе, то стихи про армию, то возбуждающиеся формы)) Браво))
1
Samual_J_Colt  [ТС]
21
29.01.2016, 08:48
Цитата Сообщение от mobile Посмотреть сообщение
По умолчанию там 20 минут, но введите 0.1 и понаблюдайте как через 6 секунд форма возбудится.
Блин, запустил Ваш пример посмотреть на работе с утра. Поставил 1 минуту. Вообщем коллеги и начальство не оценило пищащий на весь офис и мигающий красным мой ноут

Добавлено через 1 минуту
Надо было бы еще блокировку формы по истечению таймера поставить, что бы быстро не отключить
0
29.01.2016, 11:31
Samual_J_Colt, могу предложить такой вариант по кнопке
Вложения
Тип файла: rar Таймер.rar (27.3 Кб, 71 просмотров)
0
Samual_J_Colt  [ТС]
21
29.01.2016, 13:52
Попытался реализовать несколько вариантов отображения таймера.
Особенно было интересно реализовать с помощью текста на форме.

Посмотрите и поделитесь мнением, по поводу такой реализации.
В частности еще интересно, почему в аксесе
Visual Basic
1
OutStr = CStr(Интервал)
и
Visual Basic
1
OutStr = CStr( Now())
отображает нормально для .caption, но отказывается
Visual Basic
1
OutStr = CStr(Интервал - Now())
При этом прекрасно справляется с подобным для поля
Visual Basic
1
Me.Таймер = Интервал - Now()
В чем его проблема?
А функция datediff мне не нравится так, как возвращает результат в интервалах.
Вложения
Тип файла: 7z Timer.7z (15.1 Кб, 18 просмотров)
0
26828
29.01.2016, 14:07
Надо пользоваться форматом
Visual Basic
1
2
3
   Me.Надпись8.Caption = Format(OutStr, "hh:nn:ss")
   Me.Надпись5.Caption = Format(Outstr3, "hh:nn:ss")
   Me.Надпись6.Caption = Format(OutStr1 & ":" & Outstr2, "hh:nn:ss")
Вложения
Тип файла: rar Timer11.rar (16.9 Кб, 66 просмотров)
0
Samual_J_Colt  [ТС]
21
29.01.2016, 14:30
Цитата Сообщение от Aleks777 Посмотреть сообщение
Samual_J_Colt, могу предложить такой вариант по кнопке
Вложения
Тип файла: rar Таймер.rar (27.3 Кб, 1 просмотров)
Спасибо идея интересная.
Так же мне хотелось бы отображение таймера в виде 00:00 (минуты секунды, можно добавочно часы) В вашем коде это можно сделать изменив
Visual Basic
1
Me.Поле2 = Fix(bytCounter / 60) & ":" & (bytCounter - Fix(bytCounter / 60) * 60)
,но в варианте переменной byte ограничения 255сек. Мне желателен интервал от 5 минут и до часа. Делается, как таймер для сдачи теста. (в зависимости от сложности и кол-во вопросов) его длительность будет от 5 минут до часу, думаю.

Как вариант можно ввести вторую переменную для минут. Уменьшать ее на 1, на 60 шаге секундного счетчика.
А сообщение выводить при достижении обоих переменных 0.

Спасибо за идею, буду выбирать из всех вариантов наиболее удобный.

Добавлено через 14 минут
Цитата Сообщение от mobile Посмотреть сообщение
Надо пользоваться форматом
Спасибо. Думал об этом.
Но могли бы объяснить почему, аксесс может преобразовать в текст значения Now() а разницу нет? Ведь он показывает некое значение разницы,(как я понимаю в формате числа двойной точности с плавающей запятой), почему же он не может его преобразовать? Связанно ли это с ограничением даты (Дата может принимать значения от -657 434 (1 января 100 г. н.э.) до 2 958 465 (31 декабря 9999 г. н.э.).), тогда какое же значение он пытается вывести?

Добавлено через 1 минуту
Mobile, надеюсь не сильно Вас загрузил. Просто с детства был любопытен и пытался все понять, а не принять на веру ))
0
26828
29.01.2016, 15:07
Дело в типизации. Строка или вариант не могут знать, что заданная им разность двух даблов это время. Они выпечатывают то, что им дано. А даны им числа с плавающей запятой, а не даты. Типизируйте переменные и будете получать ответ в сразу в соответствующем формате без дополнительных преобразований.

Но здесь надо сразу отметить, что типизированные переменные не воспринимают NULL, нулл принимает только тип Variant. Поэтому если входные данные могут содержать нуллы, то приходится работать только с вариантами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 Аватар для raxper
raxper
30234
29.01.2016, 15:07

Таймер по нажатию кнопки
Такой вопрос! Как сделать так чтобы нажав на кнопку начался таймер то есть обратный отчет времени например 1 минуты? :-|

Как остановить таймер по нажатию кнопки?
Сделал эффект вращение детали на нажатие Button5. Как сделать чтобы при повторном нажатии Button5 таймер останавливался? ...

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

Запуск другой программы по нажатию кнопки
Добрый вечер! Допустим, что у меня есть программа "Programma" и мой проект "Form". Каким синтаксисом можно сделать так, чтобы по...

Запуск таймера по нажатию кнопки в GUI
Доброго времени уважаемое сообщество! Прошу помочь с таймером, который должен запускаться по нажатию кнопки pushSrart_Callback. В...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru