Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.09.2009, 16:26
Kisun Kisun вне форума
Прохожий
 
Регистрация: 19.08.2009
Сообщения: 3
Репутация: 10
По умолчанию Не могу придумать!! Помогите!

Необходимо выполнять действие пока программа работает.
Во время работы проги необходимо переодически смотреть существует ли определенный файл. Если да, то выполнять то-то, else то.
Спасибо!
Ответить с цитированием
  #2  
Старый 10.09.2009, 16:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,024
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. По таймеру. Недостатки - если обработка файла долгая, то выполнение основной программы будет прервано. Можно невилировать задержки, но все-равно, не самый оптимальный вариант.
2. В обработчике события OnIdle самого приложения (вызывается, когда приложение "не работает", т.е. простаивает). Недостатки - такие же, как и у первого метода.
3. Выкинуть это процесс в отдельную нить (поток). Недостатки - придется заморачиваться с синхронизацией с основным потоком приложения, если в результате надо что-то сказать пользователю.

Выбирай, какой больше нравится.
Ответить с цитированием
  #3  
Старый 10.09.2009, 17:50
Kisun Kisun вне форума
Прохожий
 
Регистрация: 19.08.2009
Сообщения: 3
Репутация: 10
По умолчанию

При появлении файла в определенной директории должно происходить закрытие программы через заданное время.
Выполнение основной программы происходит по кнопке, а по событию "появление файла" должна закрываться.
А onIdle че-то не видел в delphi.
Ответить с цитированием
  #4  
Старый 10.09.2009, 18:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,024
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тогда можно по таймеру и вызвать Application.Terminate.
Ответить с цитированием
  #5  
Старый 11.09.2009, 13:33
Kot-Dc Kot-Dc вне форума
Прохожий
 
Регистрация: 10.05.2009
Адрес: За компом
Сообщения: 19
Репутация: 10
По умолчанию

Потоки это оптимальный вариант.
Библия дельфи глава 16-17
Ответить с цитированием
  #6  
Старый 11.09.2009, 14:09
Kisun Kisun вне форума
Прохожий
 
Регистрация: 19.08.2009
Сообщения: 3
Репутация: 10
По умолчанию

Благодарю за советы!!!
Почитаем библию
Ответить с цитированием
  #7  
Старый 11.09.2009, 19:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Да нафига здесь потоки? Вот ведь, где надо и ненадо их норовят применить. Задача тривиальная, запустить таймер который будет просто опрашивать каталог на наличие файла с периодичностью хоть в секунду. Никаких тормозов и близко не будет в основном приложении.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter