Текущий архив: 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.01 c