Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
1

Использование компонента Timer

05.06.2015, 09:32. Показов 1819. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
...доброго времени суток, уважаемые форумчане!.. Вопрос по использованию компонента "Timer": существует ли у него какое-то свойство (условие) позволяющее пока идет отсчет времени программно запретить/разрешить какие-либо действия, а после остановки (окончания отсчета временного интервала) вновь разрешить/запретить?

Заранее благодарен за ответ.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2015, 09:32
Ответы с готовыми решениями:

Максимальный интервал компонента Timer
...доброго времени суток, уважаемые форумчане! Возник такой вопрос: какой максимальный интервал...

Использование COM-компонента
Есть COM-компонент в виде dll (к ней есть tlb и idl файлы). Компонент я зарегистрировал через...

Использование компонента UpDown
Здравствуйте! У меня возник вопрос, как можно сделать, чтобы UpDown брал число с определенного...

Использование значений из одного компонента формы в другом
Допустим в Билдере на форме есть две кнопки: void __fastcall TForm1::Button1Click(TObject...

7
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
05.06.2015, 09:41 2
А вы проверяйте это в условии, если таймер запущен, тогда что-то блокируется, иначе разблокируется
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
05.06.2015, 10:03 3
Лучший ответ Сообщение было отмечено Simulkin Stas как решение

Решение

C++
1
2
3
4
if( !Timer1->Enabled )
  {
  // Какие-то действия разрешенные, когда таймер выключен
  }
1
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
05.06.2015, 10:20  [ТС] 4
SatanaXIII, Ваш вариант условия мне больше нравится - сам я собирался сделать где-то так:
C++
1
2
3
4
if(Timer -> Enabled == true)
 {
 // Что-то разрешаем/запрещаем 
 }
... и в обработчике таймера:
C++
1
2
3
4
void __fastcall TMainForm::OnTimer(TObject *Sender)
 {
  // После срабатывания: то, что раньше разрешали/запрещали, выполняем "наоборот" 
 }
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
05.06.2015, 10:24 5
Это одно и то же, просто по-разному записывается Результат условия инвертируется
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
05.06.2015, 10:27 6
Simulkin Stas, я вам дал ответ в лоб. Его ценность ну никакая. Хоть он и решает вашу задачу.
Если вы хотите узнать как правильно сделать что-либо, то и опишите вашу задачу полностью.
Смысл в том, что событие OnTimer произойдет только когда Timer->Enabled==true.
1
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
05.06.2015, 10:38  [ТС] 7
SatanaXIII, меня этот вариант вполне устраивает, а задача очень простая: имеется технологический процесс строго определенной продолжительности и, чтобы "сдуру" нельзя было закрыть окно, пока таймер считает:
C++
1
2
3
4
5
6
7
// Деактивимруем кнопку "Закрыть"
    HMENU MenuHandle = GetSystemMenu(Handle, false);
   if(MenuHandle)
    {
      EnableMenuItem(MenuHandle, SC_CLOSE, MF_GRAYED);
      NoticeForm1 -> ShowModal(); // Это предупреждение о невозможности отмены предустановок
    }
а потом (по окончании):
C++
1
2
3
4
5
6
7
// *******  ПОВТОРНАЯ АКТИВАЦИИ КНОПКИ "ЗАКРЫТЬ"  ******
     HMENU MenuHandle_ = GetSystemMenu(Handle, false);
   if(MenuHandle_)
    {  
       EnableMenuItem(MenuHandle_, SC_CLOSE, MF_ENABLED);
       NoticeForm2 -> ShowModal(); // Уведомление, что можно менять предустановки 
    }
...вот и все.
1
случайный прохожий
 Аватар для gunslinger
3071 / 2107 / 630
Регистрация: 20.07.2013
Сообщений: 5,657
05.06.2015, 12:25 8
Тогда все упрощается:
C++
1
2
3
4
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
  CanClose = !Timer1->Enabled;
}
Пока таймер работает, окно на крестик (пусть он и выглядит активным) не закроется.
1
05.06.2015, 12:25
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2015, 12:25
Помогаю со студенческими работами здесь

Переход на использование другого компонента(TImage -> TsImage)
Здравствуйте. Дело такое - в 6 билдере нужно перейти с TImage на TsImage(Может работать с png)....

Создание своего компонента на основе компонента Timer
нужно создать свой компонент какбы который наследует компонент Таймер нужно хотя бы добавить...

Неточность компонента Timer
Добрый вечер! Вот прямо проблема за проблемой... Есть вот такой вот код: Public Class frmMain...

Использование компонента TreeView как переключатель вкладок компонента TabControl
И так, есть форма на которой расположились компоненты TabControl и TreeView. Вопрос, можно ли...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как отменить слияние (merge) в Git
bytestream 23.01.2025
В процессе разработки программного обеспечения часто возникают ситуации, когда необходимо отменить слияние веток в системе контроля версий https:/ / www. cyberforum. ru/ git/ "]Git. Эта операция может. . .
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru