Вопрос № 29632: Здравствуйте уважаемые эксперты!
Во время работы с командой delay() время задержки всегда разное, т.е. какой-то компьютер тратит на нее больше времени, а какой-то больше. Скажите, можно ли избавиться от этой проблемы с помощью таймера? Если да, т...
Вопрос № 29.632
Здравствуйте уважаемые эксперты!
Во время работы с командой delay() время задержки всегда разное, т.е. какой-то компьютер тратит на нее больше времени, а какой-то больше. Скажите, можно ли избавиться от этой проблемы с помощью таймера? Если да, то подскажите, пожалуйста, как им пользоваться? И есть ли еще способы при помощи, которых можно изменить скорость выполнения программы на разных компьютерах?
Отправлен: 16.11.2005, 02:39
Вопрос задала: Maxa (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Maxa!
Если речь идет о TurboPascal, то плюньте на него и скачайте себе FreePascal, который разработан специально для использования в винде и не имеет подобных глюков. Там в Delay() используется стандартная функция Sleep().
Если речь идет о чистом ДОС (т.е. программа выполняется не в досовской консоли винды), то можно попробовать написать собственную функцию задержки через досовскую функцию $2C прерывание $21.
Эта функция выдает время компьютера, т.е. задав звдержку, например на 3 секунды и получив текущее время, ждать пока не наступит текущее время плюс 3 секунды в цикле.
То же самое можно сделать используя паскалевую функцию GetTime().
Ответ отправил: sir henry (статус: Академик)
Отправлен: 16.11.2005, 05:33