![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Консоль и таймер [D6]
loooo1 © (2006-11-23 09:52:00)Возможно ли в консольном приложении на дельфи организовать таймер?
RWolf (2006-11-23 10:49:00) [1]чтобы принимать сообщения, необходимо сначала создать окно. Без него - только callback. Как - написано в справке по SetTimer.
Сергей М. (2006-11-23 10:49:00) [2]А чем, кстати, TTimer не угодил ?
Сергей М. (2006-11-23 10:47:00) [3]
> как осуществить в такой ситуации коллбэк?
А никак.
Чтобы осуществить колбэк, нужно указать адрес колбэк-процедуры 4-ым параметром ф-ции SetTimer() и организовать цикл иного вида:
while(GetMessage(msg, 0, 0, 0)) do
DispatchMessage(Msg);
loooo1 (2006-11-23 10:22:00) [4]Ну сочинил я полную ерунду одним словом:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows, Messages;
var
msg: TMsg;
begin
SetTimer(0, 1, 2000, 0);
while(GetMessage(msg, 0, 0, 0)) do
if msg.Message = WM_TIMER then begin
MessageBoxA(0, '', '', 0);
Break;
end;
KillTimer(0, 1);
end.
Видимо такой подход далеко не корректен? И как осуществить в такой ситуации коллбэк?
Anatoly Podgoretsky (2006-11-23 10:03:00) [5]> loooo1 (23.11.2006 09:52:00) [0]
Возможно
RWolf (2006-11-23 09:57:00) [6]можно. API-шный таймер может вызывать callback при срабатывании.