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

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

Консоль и таймер [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 при срабатывании.


Наверх

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