Главная страница
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.48 MB
Время: 0.026 c
1-1083294683
hrs
2004-04-30 07:11
2004.05.16
Tlistview Проясните ситуацию


3-1082614389
Andriy Tysh
2004-04-22 10:13
2004.05.16
ClientDataSet & AggregatesFields


4-1080544622
Akvilon
2004-03-29 11:17
2004.05.16
окно выбора папки


3-1082441334
Соловьев
2004-04-20 10:08
2004.05.16
Падает сервак ФБ 1.03


4-1080683067
tux
2004-03-31 01:44
2004.05.16
Как получить информацию из консоли?