Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Помогите зделать простой таймер   Найти похожие ветки 

 
Dr.Nemo   (2005-08-27 00:45) [0]

Помогите зделать простой таймер на winapi c задержкой 10 sec


 
Джо ©   (2005-08-27 00:59) [1]

Вот, самое простое, что смог придумать.

program Project2;

uses
 Windows, Messages;

var
 Timer: THandle;
 Msg: TMsg;
 Counter: Integer;

procedure TimerProc (Msg,Id: UINT; Time: DWORD);
begin
 Inc (Counter);
end;

begin
 Timer := SetTimer(0,0,10000,@TimerProc);
 if Timer <> 0 then
 begin
   while (GetMessage(Msg, 0, 0, 0)) and (Counter<3) do
   begin
     TranslateMessage(msg);
     DispatchMessage(msg);
   end;
   KillTimer(0,Timer);
 end;
end.

В нормальных условиях программа завершается после срабатывания 3-х десятисекундных взводов таймера.


 
Dr.Nemo   (2005-08-27 01:07) [2]

а какбы мне зделать такой который есть в vcl и если можно вставить стандартный таймер баз окон то какм ?


 
Zeqfreed ©   (2005-08-27 01:18) [3]

Dr.Nemo   (27.08.05 1:07) [2]
А что тебя не устраивает в [1] и чем "тот, который в VCL" лучше?


 
Dr.Nemo   (2005-08-27 01:19) [4]

program Project1;

uses
Windows,
Forms,
Dialogs;

procedure Delay(ms : longint);
var
 TheTime : LongInt;
begin
 TheTime := GetTickCount + ms;
 while GetTickCount < TheTime do begin
   Application.ProcessMessages;
   Sleep( 10 );
 end;
end;
begin
 begin
ShowMessage("Start Test");
Delay(10000);
ShowMessage("End Test");
Delay(10000);
ShowMessage("End2 Test");
end;
//end;

end.

а можно такой таймер зациклить бесконечно до появления определенного события


 
Zeqfreed ©   (2005-08-27 01:22) [5]

Dr.Nemo   (27.08.05 1:19) [4]
Смотря что ты подразумеваешь под каким-то событием. Скорее всего можно :)


 
Dr.Nemo   (2005-08-27 01:26) [6]

мне нужно чтоб при запуске етой программы через 10сек шло сообщение на сервер


 
Zeqfreed ©   (2005-08-27 01:30) [7]

Dr.Nemo   (27.08.05 1:26) [6]
В [1]:
...
procedure TimerProc (Msg,Id: UINT; Time: DWORD);
begin
//Тут отсылай сообщение
end;
...


...Counter<1...


 
Dr.Nemo   (2005-08-27 01:38) [8]

а можно поподробней а то я токо учусь, код отсылки не надо


 
Marser ©   (2005-08-27 01:49) [9]


> а можно такой таймер зациклить бесконечно до появления
> определенного события

Для таких случаев обычно используют WaitForSingleObject+CreateEvent


 
Dr.Nemo   (2005-08-27 01:57) [10]

а можно поподробней желательно с примерчиком зарание спасибо


 
Marser ©   (2005-08-27 02:09) [11]

Dr.Nemo   (27.08.05 1:57) [10]
Увы. Хороший свой пример использования я оставил на работе, а сейчас - в час ночи, желания писать новый, нет. Тем более, что это относится к многопоточным приложениям. В данном случае не понимаю чем не подходит [1]


 
Marser ©   (2005-08-27 02:13) [12]

SetTimer в том примере устанавливает 10 секундный интервал, по истечении которого выполняется TimerProc. Стандартный цикл оконной процедуры здесь явно добавлен, дабы запугать молодого :-)


 
Dr.Nemo   (2005-08-27 02:28) [13]

а как мне вместо окон чото запустить дапустим какойто файл


 
Marser ©   (2005-08-27 02:38) [14]


> а как мне вместо окон чото запустить дапустим какойто
> файл

Общение прекращается за отсутствием адекватного собеседника.
Даже если отбросить безграмотность, смысл вопроса не ясен. А "чото" вообще достойно "Орешника", хотя оно там уже представлено.


 
Джо ©   (2005-08-27 02:48) [15]

Да, вопрос в [13], определенно, номинант :)


 
Dr.Nemo   (2005-08-27 03:02) [16]

Я конечно извеняюсь за ошибки если можете помогите мне хоть по етой теме http://delphimaster.net/view/6-1125054010/


 
Джо ©   (2005-08-27 03:20) [17]

Учиться, учиться и учиться. На год забросить все эти "скачки из интернета", "таймеры", "АПИ" и прочее.
Говорю это исключительно и именно из желания помочь. Впрочем, обманывать себя не буду - знаю, что не последуешь этому совету.


 
Dr.Nemo   (2005-08-27 03:23) [18]

ок :(



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
14-1124721982
ПЛОВ
2005-08-22 18:46
2005.09.18
Поможите, никак не могу разобраться с типами переменных


6-1117201198
Asterot
2005-05-27 17:39
2005.09.18
Помогите люди добрые


14-1122692754
dr Tr0jan
2005-07-30 07:05
2005.09.18
Вопрос о сантехнике


10-1102629822
turonix
2004-12-10 01:03
2005.09.18
Создание Excel файла


3-1123018005
makvell
2005-08-03 01:26
2005.09.18
Как записать RTF в поле таблицы Paradox?