www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

Шаг 32 - Использование Таймера

Создание проекта

Продолжаем развивать наш проект.

Создаем код

В файле Resource.h
.......
#define ID_TIMER_1			
........
В обьявлении класса окна диалога.
class CDiaDlg : public CDialog
{
..........
// Implementation
    afx_msg void OnTimer( UINT );  
..........
protected:
    ...........
    bool Test;
    ...........
};
В таблице откликов диалога
BEGIN_MESSAGE_MAP(CDiaDlg, CDialog)
	............
	ON_WM_TIMER()
END_MESSAGE_MAP()
Реализация
void CDiaDlg::OnTimer( UINT uTime)
{
	m_List.AddString("Timer !");
}
Реализация нажатия на кнопку
void CDiaDlg::OnSave() 
{
  if (!Test) 
  {
	  Test=true;
	  SetTimer(ID_TIMER_1,1000,NULL);
  }
  else
  {
	  Test=false;
	  KillTimer(ID_TIMER_1);
  }
}
Добавления в конструктор диалогового окна
CDiaDlg::CDiaDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDiaDlg::IDD, pParent)
{
	.............
	Test=false;
}

Описание

Таймер позволяет синхронизировать процессы с реальным временем. Работает он так - после запуска таймера , через указанный интервал вызывается процедура внутри которой и происходит анализ, реакция или подсчет вызовов.

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

Далее в классе диалогового окна мы обьявили функцию реакции. Её имя и параметры оговорены заранее так как она виртуальная afx_msg. Как найти функцию соотвествующую событию ? Наведите курсор на событие, а в нашем случае ON_WM_TIMER() и нажмите F1.

Переменную Test я завел для остановки и запуска таймера. Следующим шагом, обьявлена реакция на событие в таблице откликов.

Реализация реакции простая. В наш список добавляеться строка Timer !, для визуального контроля над процессом.

Дальше у нас реакция на нажатие кнопки. Название функции OnSave оставлена специально, для меньших коректировок. Смотри в корень!. Запускается и останавливается таймер в зависимости от содержания переменной Test.

SetTimer запускает таймер. В эту функцию передаётся идентифкатор (имя) таймера и интервал реакции.

Для оснавки таймер нужно убить KillTimer указав имя.

Последнии строки это установка начального значения переменной Test в самом начале.

Итак запускаем. Нажимаем на кнопку, в списке добавляются строки. Нажимаем еще раз - всё остановилось. Вот так.


Шпаргалка

У таймера должен быть идентифкатор
#define ID_TIMER_1
Реакция на таймер должна быть в таблице отклика
ON_WM_TIMER()
И функция должна быть реализованна.
afx_msg void OnTimer( UINT );  
Запуск - Остановка
SetTimer(....);
KillTimer(....);


Комментарии | Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz