![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Killerkod |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
В общем пишу программу, много функций, не имеют отношения к делу, эти функции выполняются в цикле через определенное количество времени.
например: while i=1 do load_file; sleep(60000); end; т.е. программа качает файл, ждет 60 секунд и качает опять. переменная i меняется при нажатии кнопок Старт и Стоп, т.е. нажали Старт i:=1 и процесс пошел, нажали Стоп i:=0 и процесс кончился. Естественно при таком раскладе на форме ничего нажать не получиться, надо выносить в потоки, а все процедуры выносить в потоки долго будет и не легко, т.к. программа большая по коду. Вот меня интересует, как можно функцию sleep вынести в отдельный поток так, чтобы программа скачала файл, и поток ожидания запустился, при этом остальные функции ждали пока поток завершится. Либо вопрос, если так сделать нереально, то можно ли в потоке подключать функции, которые были прописаны в главном разделе программы (unit1). Т.е. чтобы не переписывать все заново в файл потока. Ну и как это реализовать заранее спасибо! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А не проще кинуть на форму таймер, установить ему период в минуту, и load_file засунуть в OnTimer?
|
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Таймер уже подсказали.
Sleep с прокачкой сообщений. Вынос кода в поток. Выбирайте любое. Это сообщение отредактировал(а) CodeMonkey - 15.12.2010, 13:40 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Killerkod |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
спасибо, только вот насчет прогресс бара не понял как реализовать... ведь в программе это не единственная функция, их много...
CodeMonkey, за ссылки спасибо, только сюда не заходит, ошибка - Sleep с прокачкой сообщений. попробуем погуглить еще чтонибудь... |
|||
|
||||
| Killerkod |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
еще появился вопрос, ведь если я в таймер ставлю запуск процедуры где выполняется скачивание, то таймер один раз отпашет и запустит процедуру, а потом... ведь если сделать цикл, где таймер будет запускаться в цикле, пока не нажали кнопку стоп, то программа опять будет вешаться... отпишите по подробнее про Sleep с прокачкой сообщений.
ссылка не открывается |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |