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

Вниз

Задержка времени   Найти похожие ветки 

 
BMax   (2002-03-16 07:12) [0]

Кто-нибудь может подсказать как сделать задержку времени, если на TP это была Dalay, то на Delphi ее нет.


 
Suntechnic   (2002-03-16 07:51) [1]

Есть подозрение что это была Delay :)...
о какой задержке речь идёт? Sleep(...) устроит?


 
Bmax   (2002-03-16 08:12) [2]

Suntechnic, чего то я не понял с Sleep. Не хочет работать.
(Да, память подводит)


 
MBo   (2002-03-16 08:20) [3]

>Не хочет работать
Обоснуй


 
Bmax   (2002-03-16 08:26) [4]

MBo, как начинающему программисту это обосновать тяжеловато, выдают ошибку, что такого в помине нет.
Ребята, что больше вариантов кроме Sleep нет?


 
MBo   (2002-03-16 08:36) [5]

uses windows
есть?


 
Suntechnic   (2002-03-16 08:39) [6]

>выдают ошибку, что такого в помине нет

Чего нет в помине? Ты толком объясни...
uses ... SysUtils ... пробовал?

>больше вариантов кроме Sleep нет?

Вариантов опять же чего? Ты ж не говоришь, что тебе надо, а штатного Нострадамуса здесь не предусмотрено...


 
ХЕХЕХИХИХИ   (2002-03-16 09:13) [7]

Почему можно через цикл сделать почти одно и тоже получится :))))


 
Anatoly Podgoretsky   (2002-03-16 09:17) [8]

ХЕХЕХИХИХИ (16.03.02 09:13)
Ни одно и тоже, во первых разогрев процессора, во вторых не повторяемость на разных процессорах.

Bmax © (16.03.02 08:12)
а ты приведи строки USES с и строку вызовом, сказали же не Нострадамусы, ну ошиблись не много не Телепаты.

А если хочешь точный ответ, то ЕСТЬ


 
watcher   (2002-03-16 11:46) [9]

// делает то же что и Sleep() но окно обрабатывает сообщения
uses Windows;
......
var
lTime: cardinal;
begin
lTime := GetTickCount;
while GetTickCount - lTime < 10000 {10 sec} do
Application.ProcessMessages;
end;


 
Anatoly Podgoretsky   (2002-03-16 14:35) [10]

И потом удивляемся почему через 50 дней повисла виндоус


 
Alex_LG   (2002-03-16 16:42) [11]

2 Anatoly Podgoretsky © :
по моему то, что предложил watcher - обычная практика? или нет? если нет - не могли бы предложить свой вариант? меня тоже интересует другой вопрос: чем можно заменить Application.ProcessMessages - пишу на API программку, БЕЗ unit Forms


 
Anatoly Podgoretsky   (2002-03-16 16:59) [12]

Практика обычная и последствия обычные, зависание данного цикла.
Если пишешь на чистом API то у тебя должен быть цикл обработки сообщений, нужно вызывать PeekMessages, реализацию можешь посмотреть в модуле forms для Application.ProcessMessages,


 
denis_s   (2002-03-16 19:08) [13]

поставь таимер на форму и пиши
sleep(200);



 
Anatoly Podgoretsky   (2002-03-16 19:28) [14]

а таймер то зачем


 
bad-md   (2002-03-16 19:39) [15]

-> All:

4 месяца здесь не был...

"Де жа вю...", чем закончили, с того и начали, обсуждалось же уже все 1XXXX раз, причем теми же словами, а если у BMax на TP это была - Dalay, то и под Delphi, соответственно - Slaap.

With best wishes


 
kull   (2002-03-16 20:15) [16]


> Практика обычная и последствия обычные, зависание данного
> цикла.


А в каком месте, извините он зависает?


 
Anatoly Podgoretsky   (2002-03-16 20:41) [17]

Не совсем зависания, а просто вместо 10 секунд цикл может растянуться до бесконечности, это когда счетчик близок к максимвльному значению в 2^32
например при значении в 4294957297 вышеприведенный цикл никогда не закончится, так как число 4294967297 невозможно представить.


 
kull   (2002-03-16 20:49) [18]

Теоретически наверное да.
4294957297 ms ~ 8 лет ...


 
Anatoly Podgoretsky   (2002-03-16 22:00) [19]

нет всего 49 дней, у меня недавно компьютер пошел уже на третий круг


 
kull   (2002-03-16 22:10) [20]

Не понял? Какие 49 дней? Переведи...


 
Anatoly Podgoretsky   (2002-03-16 22:15) [21]

Это ты переведи x/1000/86400


 
kull   (2002-03-16 22:22) [22]

Да действительно...
Похоже я туплю забыл еше 60 минут в часе
звиняйте...


 
Donal_Graeme   (2002-03-17 04:46) [23]

хм.. а можно ли для целей задержки использовать
WaitForSingleObject?


 
Bmax   (2002-03-17 07:19) [24]

Я нашел вот что:
Аналог процедуры Delay в Delphi
procedure TForm1.Delay(msecs : Longint);
var
FirstTick : longint;
begin
FirstTick:=GetTickCount;
repeat
Application.ProcessMessages; {для того чтобы не "завесить" Windows}
until GetTickCount-FirstTick >= msecs;
end;


 
Petrovich   (2002-03-17 09:06) [25]

Предлагаю по функции текущего времени обрабатывать.
Читаем текущее время
Задаем цикл с While tekVr1-TekVr<Znach do
и в цикле читаем текущее время сравнивая с начальным.
Тогда заморочек с разными процами быть не должно


 
Anatoly Podgoretsky   (2002-03-17 09:57) [26]

Заморочек с прочессорами нет, есть заморочки с типами, обычно не учитывают ограниченную разрядность, наглядный пример два выше приведенных примера с GetTickCount



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

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

Наверх





Память: 0.49 MB
Время: 0.006 c
4-91129
Хлор
2002-01-10 03:31
2002.03.28
Как игнорировать действия пользователя


1-90946
Irina Lisova
2002-03-13 19:06
2002.03.28
TreeView как распечатать дерево ?


1-90901
kull
2002-03-18 11:21
2002.03.28
Народ! срочно нужна помощь по Mail Slot!


1-90953
novom
2002-03-13 15:06
2002.03.28
Преобразовать в стандартный формат.


1-90852
vovaS
2002-03-11 18:52
2002.03.28
Как считать выражение с заданной точностью?





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