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

Вниз

Пауза в программе   Найти похожие ветки 

 
PCpuzik   (2002-11-05 14:47) [0]

Как сделать так чтобы моя программа не работала в течении некоторого времени, т.е. идут
--что-то там
--Пауза
--Продолжение
Т.е. аналог паскалевскому Delay?


 
Skier   (2002-11-05 14:48) [1]

>PCpuzik
Sleep(...) ?


 
KoluChi   (2002-11-05 15:02) [2]

Лови:

procedure TForm1.Delay(AInterval: Integer); {миллисекунды}
var
timer: tTimer;
begin
timer := TTimer.Create(nil);
with timer do
try
Interval := AInterval;
OnTimer := OnTimerTimer;
Enabled := true;
repeat
Application.ProcessMessages();
until not Enabled;
finally
free();
end;
end;
procedure TForm1.OnTimerTimer(Sender: tObject);
begin
if Sender.inheritsFrom(TTimer) then
(Sender as tTimer).Enabled := false;
end;


 
Дремучий   (2002-11-05 15:03) [3]

если аналог, то тогда

> Skier © (05.11.02 14:48)
> Sleep(...)



 
SaS13   (2002-11-05 15:06) [4]

можно проще:
procedure Wait(nWait: integer);
var wTemp, Sec, SecNew: Word;
begin
DecodeTime(SysUtils.Time, wTemp, wTemp, Sec, wTemp);
repeat
DecodeTime(SysUtils.Time, wTemp, wTemp, SecNew, wTemp);
Application.ProcessMessages
until Abs(Integer(Sec - SecNew) ) >= nWait
end;


 
KoluChi   (2002-11-05 15:23) [5]

Согласен


 
KoluChi   (2002-11-05 15:27) [6]

procedure Wait(nWait: integer);
var wTemp, Hour, Minute, Sec, SecNew: Word;
begin
DecodeTime(SysUtils.Time, Hour, Minute, Sec, wTemp);
Sec := Sec + 60 * Minute + 3600 * Hour;
repeat
DecodeTime(SysUtils.Time, Hour, Minute, SecNew, wTemp);
SecNew := SecNew + 60 * Minute + 3600 * Hour;
Application.ProcessMessages
until Abs(Integer(Sec - SecNew) ) >= nWait
end;


 
KoluChi   (2002-11-05 15:28) [7]

Немножко подправил, а то как-то некорректно, например, если Sec = 59.


 
SaS13   (2002-11-05 15:33) [8]

KoluChi © (05.11.02 15:28)
не было необходимости Wait больше минуты делать :)))


 
KoluChi   (2002-11-05 15:54) [9]

Да тут дело не в минуте, просто если начальное время 12.01.59, то
sec = 59, secnew никогда не будет больше 59 - пауза навечно.


 
Alex4444444444   (2002-11-05 15:56) [10]

Kak-to eto poganovato: delat" pustoj cycle v mnogopotochnoj srede. Dlya etogo i est" vsyakie Sleep, Timer, WaitForSingleObject, etc, chtoby programma, kotoroj ne nuzhen CPU, ego zrya ne zanimala.


 
Incognito   (2002-11-05 16:15) [11]


procedure Delay(ms : longint);
{$IFNDEF WIN32}
var
TheTime : LongInt;
{$ENDIF}
begin
{$IFDEF WIN32}
Sleep(ms);
{$ELSE}
TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
Application.ProcessMessages;
{$ENDIF}
end;



 
TTCustomDelphiMaster   (2002-11-05 17:07) [12]

Incognito © (05.11.02 16:15)

Что за бред?


 
PCpuzik   (2002-11-05 17:38) [13]

Спасибо, Sleep хватило :-)



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

Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.017 c
3-45708
mashinist
2002-10-22 20:57
2002.11.14
dBase IV без BDE


1-45909
vic_vm
2002-11-03 20:00
2002.11.14
Вопрос по TStringGrid


3-45731
RVGroup
2002-10-24 14:49
2002.11.14
Впечатления от Cache 5


4-46205
Akni
2002-10-03 16:36
2002.11.14
Сообщения определенному окну


1-45933
wer1
2002-11-04 04:38
2002.11.14
Мастера подскажите! Копирование из буфера в Memo.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский