Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2010, 16:50   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Переменные в таймере.

Код:
Procedure Timer0(hwnd : HWND; uMsg, idEvent : UINT; dwTime : DWORD); StdCall;
Всегда использовал как просто таймер и не задумывался. Что означают все эти переменные?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.11.2010, 18:00   #2
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

hWnd - хендл указанный при создании таймера, dwTime - время таймера, nIdEvent - ИД таймера...
Vikenty вне форума Ответить с цитированием
Старый 06.11.2010, 18:02   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
Timer0ID := SetTimer(0, 0, TIMER_0_FREQ, @UNTHand.Timer0);
Хендл указанный при создании?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.11.2010, 18:11   #4
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Код:
Timer0ID := SetTimer(0, 0, TIMER_0_FREQ, @UNTHand.Timer0);
Хендл указанный при создании?
первый параметр - hWnd
Vikenty вне форума Ответить с цитированием
Старый 06.11.2010, 18:14   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А какой в нем смысл, если каждый таймер использует свою процедуру?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.11.2010, 20:49   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Код:
Procedure Timer0(hwnd : HWND; uMsg, idEvent : UINT; dwTime : DWORD); StdCall;
Всегда использовал как просто таймер и не задумывался. Что означают все эти переменные?
hwnd - handle окна, с которым ассоциирован таймер
uMsg - WM_TIMER
idEvent - идентификатор таймера
dwTime - номер милисекунды, прошедшей со старта таймера


мне обычно хватает обработки WM_TIMER в оконной процедуре окна

Код:
#define ID_TIMER_1 1000
#define ID_TIMER_2 1001


BOOL CALLBACK WindowProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lPAram)
{
   switch(msg)
   {
      case WM_INITDIALOG: SetTimer(hWnd,ID_TIMER_1,500,NULL);
                                     SetTimer(hWnd,ID_TIMER_2,500,NULL);
                                     break;

      case WM_TIMER: switch(wParam)
                              {
                                     case ID_TIMER_1: // обработка
                                     case ID_TIMER_2: // обработка
                              }break;
return false;
}

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


вроде так...
counter вне форума Ответить с цитированием
Старый 06.11.2010, 20:51   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А как тогда создать таймер, не указывая последний параметр?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.11.2010, 20:54   #8
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

укажите его как NULL


Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Код:
Timer0ID := SetTimer(0, 0, TIMER_0_FREQ, @UNTHand.Timer0);
Хендл указанный при создании?
второй параметр должен быть не нулевым
counter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторяющееся событие в таймере kta87 Общие вопросы Delphi 3 21.03.2010 10:08
like, переменные radik-com Microsoft Office Excel 2 07.02.2010 22:23
Переменные Hehe Общие вопросы Delphi 4 11.12.2009 13:40
Переменные из БД Кронос БД в Delphi 2 06.06.2007 11:26