Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
9-1072950191
mixir
2004-01-01 12:43
2004.05.16
Рисование в изометрии


1-1083578385
Петя
2004-05-03 13:59
2004.05.16
Handle dll


1-1083680338
Proger
2004-05-04 18:18
2004.05.16
ТРИАНГУЛЯЦИЯ


1-1082651546
Vitalnet
2004-04-22 20:32
2004.05.16
Увидеть весь тект в выподающем меню


7-1080772670
Colonel
2004-04-01 02:37
2004.05.16
System menu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский