Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по TTimer, Использование таймера как цикла 
:(
    Опции темы
starbreaker
Дата 4.2.2009, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 9.12.2006

Репутация: нет
Всего: нет



Здравствуйте! Есть следующая задача (в общих чертах): строиться график некоторой функции, зависящей от времени, причем отображение производится по мере вычисления новых значений, то есть пользователь видит как график непосредственно рисуется по точкам. Причем вычисления могут идти, в принципе, бесконечно, пока пользователь не остановит вычисления. Я реализовал это с помощью TTimer следующим образом: с каждым срабатыванием таймера вычисляется новое значение функции, где аргумент времени находится в прямой зависимости от интервала таймера: t += t + Timer1->Interval, затем значение рисуется на экране; а при нажатии пользователем соответствующей кнопки устанавливается Timer1->Enabled = false и вычисления останавливаются.
Оно вроде всё неплохо работает, но при том что сама функция весьма сложная, возникает следующий вопрос: что будет, если интервал срабатывания таймера меньше, чем то время, за которое вычисляется значение функции? То есть таймер сработал, началось вычисление, прошел заданный интервал времени, но значения функции ещё не вычислились, а уже должно выполниться следующее срабатывание таймера. Как в таком случае быть?

PM MAIL   Вверх
Usper
Дата 4.2.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Чтобы избежать одновременного выполнения функции можно просто написать вначале функции, обрабатывающей событие OnTimer 
Код

Timer1->Enabled=false;

А в конце:
Код

Timer1->Enabled=true;



--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.