| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Как остановить поиск |
| Автор: Volkogriz 15.1.2009, 01:14 | ||
| Доброе время суток! Нашол код , пост http://forum.vingrad.ru/forum/topic-199609/kw-поиск-директории/0.html# . Предложил уважаймый Данкинг.
Как при нажатии кнопки отмена остановить поиск!? С уважением, Volkogriz!!! |
| Автор: Qu1nt 15.1.2009, 02:05 |
| Попробуй добавить флаг в тело процедуры. Ну а по-хорошему - потоки, потоки... потоки! |
| Автор: Данкинг 15.1.2009, 02:31 |
| Заводишь глобальную переменную и перед application.ProcessMessages проверяешь её значение. Если оно изменено, то exit - выход из процедуры. Значение же это меняется по нажатию на твою кнопку "стоп". Я объяснил сильно абстрактно, но суть должна быть ясна. |
| Автор: Volkogriz 15.1.2009, 03:04 |
| Всем спасибо! ))) Поточьней мона? С уважением, Volkogriz!!! |
| Автор: THandle 15.1.2009, 09:03 | ||
| Volkogriz, а что тут, собственно говоря, точнее? Заводишь глобальную переменную(пишешь там где у тебя var Form1: TForm1, или другие имена. Ну то есть где объявление переменной формы) и проверяешь в своей функции. Типа:
А по нажатию какой то кнопки делаешь эту переменную равной true. Что тут не ясно? честно говоря такой подход мне не нравится. ИМХО, лучше http://forum.vingrad.ru/forum/topic-60076.html. |
| Автор: morpheyushka 15.1.2009, 13:03 |
Согласен |
| Автор: Frees 15.1.2009, 13:10 |
чем лучше? |
| Автор: THandle 15.1.2009, 15:27 |
| Frees, ну представим ситуацию. У нас на форме кнопка и мемо. И есть диск на котором до фига и больше файлов. Запускаем код в одном потоке, со всеми Application.ProcessMessages. В этом коде все найденные файлы добавляются в Memo. Что мы имеем? При перетаскивании мемо уже не обновляется. Закрыть приложение не реально. Какие-то другие действия делать? теперь делаем еще одно такое же приложение, только поиск файлов осуществляем в потоке и при каждом найденном делаем Synchronize в Мемо, добавляя строчку. Что имеет тут? Никаких проблем из первого варианта у нас нет И хоть пример довольно корявый, но все равно при замере времени выполнения с GetThreadTimes оказалось что с отдельным потоком работает в среднем на ~15% быстрее. Так что... |
| Автор: bems 16.1.2009, 21:00 | ||
|
| Автор: Volkogriz 17.1.2009, 22:29 |
| Доброго времени суток! Всем огромное спасибо! А уточнить мона!? |
| Автор: bems 18.1.2009, 12:21 |
| можна, но не стоит. Сделай просто шоб работало. |
| Автор: Volkogriz 18.1.2009, 17:49 |
| Спасибо!!! Я зделал, работает!!!))) Просто и другие варианты хочеться понять! В учебниках толком не понять!!!))) С уважением, Volkogriz!!! |