Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.02 c
8-1114973295
MxQ
2005-05-01 22:48
2005.09.18
Векторная карта


14-1124578328
lauren
2005-08-21 02:52
2005.09.18
kursi Everest


1-1124262559
Найти
2005-08-17 11:09
2005.09.18
drag&amp;drop в TListBox


14-1124730114
Е-клмн
2005-08-22 21:01
2005.09.18
Загадка.


14-1125085155
Progamer
2005-08-26 23:39
2005.09.18
Кони vs Ливерпуль





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский