![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Пикачу |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 18.7.2006 Где: Московская област ь. Репутация: нет Всего: нет |
Господа подскажите как выйти правильно из процедуры.
Программа рассортировывает файлы по папкам с датами. Дату берет из самого файла. Все работает. Иногда, необходимо прервать обработку. При нажатии на кнопку программа сперва выходит из процедуры , а потом возвращается в середину процедуры и файлы продолжают обрабатыватся дальше. Я указал восклицательными знаками с какого места продолжается работа. Подскажите пожалуйста что не так? Заранее спасибо.
|
|||
|
||||
| Coder |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 13.12.2004 Репутация: 5 Всего: 11 |
По идее, пока ВСЯ процедура не выполниться нажатие кнопки второй раз бесполезно и Application.ProcessMessages; тебе не помогут.
Я такую же проблему решал через потоки. Открываю поток и им читаю файлы. В потоке перед каждым чтением файла стоит проверка (как у тебя if stopRun=True then ), вот если флаг остановки установлен, то тогда прерываем чтение и закрываем поток. Если не через поток, то тоже самое сделать через таймер. |
|||
|
||||
| sw04 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 22.1.2007 Где: Ufa Репутация: нет Всего: 18 |
Пикачу, работа с потомками приведена в соседнм разделе (Win Api).
Надо завести поток, и запускать (resume) или останавливать (suspend), при нажатии на button. -------------------- <удалено администрацией> |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Такие процедуры пихать в основной поток программы - жестокий садизм. Все статические сложные расчеты, которые занимают длительное время, поэтому тут один выход - потоки.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Пикачу |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 18.7.2006 Где: Московская област ь. Репутация: нет Всего: нет |
Господа, спасибо за направления движения.
Только програмирование не является моей работой для зарабатывания денег, это просто мое хоби которое я использую для облегчения своей собственной работы, которая к програмированию, да и к ИТ вообще не имеет отношения. Поэтому если не трудно, можно небольшой кусочек примера кода или где почитать что такое потоки и как это реализовывается. Спасибо. Это сообщение отредактировал(а) Пикачу - 8.6.2007, 10:53 |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Поиск по слову Thread по форуму поможет. +DRKB... Что еще сказать?
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 1 Всего: 34 |
||||
|
||||
![]()
|
| Правила форума "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. |