![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по таймеру
KyRo © (2004-03-21 23:56:00)Подскажите как при помощи апи создать таймер и обрабатывать его события ??
Германн (2004-03-25 02:30:00) [1]Удалено модератором
Примечание: OffTopic
Adder (2004-03-24 14:18:00) [2]Удалено модератором
Примечание: OffTopic
Diamond Cat (2004-03-24 04:06:00) [3]
> Adder ©
надо было просто спросить у человека а что собственно он хочет изобразить, и написать ему программу :-( совсем мозгой закиснут.
Или уж поставить интервал что-нить из разряда 50 милисек. Хоть смешно бы было, человек бы упарился месаги закрыват :о)
Германн (2004-03-23 01:43:00) [4]Удалено модератором
Примечание: Оффтопик -) ps Ответ - нет
Adder (2004-03-23 01:13:00) [5]
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.
Adder (2004-03-23 01:12:00) [6]Хм...а справку посмотреть - религия не позволяет?
uElapse
Specifies the time-out value, in milliseconds.
KyRo (2004-03-23 00:43:00) [7]А интервал где выставлять ??
Diamond Cat (2004-03-22 03:28:00) [8]SetTimer(HWND hWnd,
UINT nIDEvent,
UINT uElapse,
TIMERPROC lpTimerFunc)
обрабатывать сообщения wm_timer, сообщения приходят в функцию определенную в TIMERPROC , либо если эта функция не определена, то сообщения посылаються в оконную функцию от окна с дескриптором hwnd