Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Вопрос по таймеру   Найти похожие ветки 

 
KyRo ©   (2004-03-21 23:56) [0]

Подскажите как при помощи апи создать таймер и обрабатывать его события ??


 
Diamond Cat ©   (2004-03-22 03:28) [1]

SetTimer(HWND hWnd,
   UINT nIDEvent,
   UINT uElapse,
   TIMERPROC lpTimerFunc)
обрабатывать сообщения wm_timer, сообщения приходят в функцию определенную в TIMERPROC , либо если эта функция не определена, то сообщения посылаються в оконную функцию от окна с дескриптором hwnd


 
KyRo ©   (2004-03-23 00:43) [2]

А интервал где выставлять ??


 
Adder ©   (2004-03-23 01:12) [3]

Хм...а справку посмотреть - религия не позволяет?
uElapse

Specifies the time-out value, in milliseconds.


 
Adder ©   (2004-03-23 01:13) [4]


program Timer;
uses
 Windows,
 Messages;
function MyWndProc(Window:HWND;Mess:word;
        WParam:LongInt;LParam:LongInt):LongInt;stdcall;
  begin
    case Mess of
      WM_CREATE: Result:=0;
      WM_DESTROY:
           begin
//Удаляем таймер
              KillTimer( Window, 1 );
              PostQuitMessage(0);
              Result:=0
           end;
      WM_TIMER:
           begin
             MessageBox(Window,"Ёк","Timer сработал!",MB_OK);
             Result:=0
           end;
      else Result:=DefWIndowProc(Window,Mess,WParam,LParam)
  end;
end;

var
wc:TWndClass;
wnd:HWND;
Msg:TMsg;

PollingDelay:integer=5000; //5000 - интервал 5 сек

begin
//Регистрация класса окна
wc.style:=CS_HREDRAW+CS_VREDRAW;
wc.lpfnWndProc:=@MyWndProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(THandle(nil),IDI_APPLICATION);
wc.hCursor:=LoadCursor(THandle(nil),IDC_ARROW);
wc.hbrBackground:=COLOR_WINDOW+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="MyWndClass";

if (RegisterClass(wc)=0) then exit;

//создаем окно
wnd:=CreateWindow("MyWndClass","Таймер",
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,
    0,0,HInstance,nil);
//Устанавливаем таймер
SetTimer( Wnd, 1, PollingDelay, nil );

//показываем окно
ShowWindow(wnd,SW_RESTORE);
UpdateWindow(wnd);
//начинаем тривиальный цикл сообщений
while GetMessage(Msg,0,0,0) do
 begin
  TranslateMessage(Msg);
  DispatchMessage(Msg)
 end
end.


 
Германн ©   (2004-03-23 01:43) [5]

Удалено модератором
Примечание: Оффтопик -) ps Ответ - нет


 
Diamond Cat ©   (2004-03-24 04:06) [6]


> Adder ©

надо было просто спросить у человека а что собственно он хочет изобразить, и написать ему программу :-( совсем мозгой закиснут.
Или уж поставить интервал что-нить из разряда 50 милисек. Хоть смешно бы было, человек бы упарился месаги закрыват :о)


 
Adder ©   (2004-03-24 14:18) [7]

Удалено модератором
Примечание: OffTopic


 
Германн ©   (2004-03-25 02:30) [8]

Удалено модератором
Примечание: OffTopic



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.122 c
1-1083231666
Goida
2004-04-29 13:41
2004.05.16
Запуск программой себя же...


9-1072360931
AlexCo
2003-12-25 17:02
2004.05.16
Спрайты!!!


7-1080441044
Александр1
2004-03-28 06:30
2004.05.16
Format disk


4-1080297332
frost
2004-03-26 13:35
2004.05.16
Стиль окна как в Outlook.


3-1081976637
Coder
2004-04-15 01:03
2004.05.16
Загадочный вопрос по SQL (ХП)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский