Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Системный таймер


Страницы:   1 2 3

Sniffer ©   (2002-04-13 22:25:00) 

Привет всем! Кто нить скажет, чё ето за штуковина и как её юзать.
В моём разумении системный таймер, ет выполняет те же самые ф-ции как и стандартный дельфийский компонент......исправте если ошибаюсь. Усем сенкс!


Oleg_Gashev   (2002-04-14 02:11:00) [41]

Using Timer Functions to Create a Mousetrap

Sometimes it is necessary to prevent more input while you have a cursor on the screen. One way to accomplish this is to create a special routine that traps mouse input until a specific event occurs. Many developers refer to this routine as "building a mousetrap."

The following example uses the SetTimer and KillTimer functions to create a simple mousetrap. SetTimer creates a timer that sends a WM_TIMER message every 10 seconds. Each time the application receives a WM_TIMER message, it records the cursor location. If the current location is the same as the previous location and the application"s main window is minimized, the application moves the cursor to the icon. When the application closes, KillTimer stops the timer.

HICON hIcon1; // icon handle
POINT ptOld; // previous cursor location
UINT uResult; // SetTimer"s return value
HINSTANCE hinstance; // handle of current instance

//
// Perform application initialization here.
//

wc.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(400));
wc.hCursor = LoadCursor(hinstance, MAKEINTRESOURCE(200));

// Record the initial cursor position.

GetCursorPos(&ptOld);

// Set the timer for the mousetrap.


uResult = SetTimer(hwnd, // handle of main window
IDT_MOUSETRAP, // timer identifier
10000, // 10-second interval
(TIMERPROC) NULL); // no timer callback

if (uResult == 0)
{
ErrorHandler("No timer is available.");
}

LONG APIENTRY MainWndProc(
HWND hwnd, // handle of main window
UINT message, // type of message
UINT wParam, // additional information

LONG lParam) // additional information
{

HDC hdc; // handle of device context
POINT pt; // current cursor location
RECT rc; // location of minimized window

switch (message)
{
//
// Process other messages.
//

case WM_TIMER:
// If the window is minimized, compare the current
// cursor position with the one from 10 seconds
// earlier. If the cursor position has not changed,

// move the cursor to the icon.

if (IsIconic(hwnd))
{
GetCursorPos(&pt);

if ((pt.x == ptOld.x) && (pt.y == ptOld.y))
{
GetWindowRect(hwnd, &rc);
SetCursorPos(rc.left, rc.top);
}
else
{
ptOld.x = pt.x;
ptOld.y = pt.y;
}

}

return 0;

case WM_DESTROY:

// Destroy the timer.

KillTimer(hwnd, IDT_MOUSETRAP);
PostQuitMessage(0);
break;

//
// Process other messages.
//

}



Oleg_Gashev   (2002-04-14 02:10:00) [42]

Timer Functions

The following functions are used with timers.

KillTimer
QueryPerformanceCounter
QueryPerformanceFrequency
SetTimer
TimerProc

Timer Messages

The following message is used with timers.

WM_TIMER


Sniffer   (2002-04-13 23:39:00) [43]

Чёрт............не могу найти


Anatoly Podgoretsky   (2002-04-13 23:30:00) [44]

Посмотри исходники TTimer


Sniffer   (2002-04-13 23:03:00) [45]

Я имел в виду можно ли етот самый системный таймер юзать, обходя компонент?


Sniffer   (2002-04-13 22:52:00) [46]

А как яё юзать?


Anatoly Podgoretsky   (2002-04-13 22:45:00) [47]

Это оболочка над системным таймером


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо