![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отслеживание события из функции.
MasterVovan © (2005-11-30 15:28:00)Здравствуйте!
Как сделать так, чтобы остановить работу функции до тех пор, пока не произойдет событие какого либо компонента, затем продолжить выполнение этой функции?
Заранее спасибо!
С уважением!
Набережных С. (2005-11-30 20:35:00) [21]Callback?
Или в функции запустить метод компонента и ждать эвента, который компонент установит по событию. Или, как уже сказал alex_*** ©, метод запускать в доп.потоке, если ему требуется цикл выборки сообщений - чтобы не мешать работе хоста.
В общем, надо знать, как работает компонент.
MasterVovan (2005-11-30 20:04:00) [22]2alex_***:
блокирование основного приложения происходит на 1 секунду максимум, ибо процесс поиска mx записей не долог... Просто когда ипользую видимую форму, тогда это окно мигнет на 1 секунду не прочитать на ней ничего и не понять что это... Ощущение что глюк, который вылез, а я его отловил и закрыл, чтоб никто не понял... А мне это начальству нести и в глаза смотреть...
alex_*** (2005-11-30 19:54:00) [23]ну вы блин даете... невидимую модальную форму. ЧТоб заблокировать экран? Честно извратами не занимался никогда. и желания даже нет. За них мне деньги не платят ;)
MasterVovan (2005-11-30 19:49:00) [24]2alex_***:
к сожалению, очень... возможен вариант с формой, которую буду открывать модально (как было в самом начале и работало), но как тогда сделать чтоб ее на экране небыло и кнопок внизу никаких не появлялось? какуюнибудь виртуальную форму надо, невидимую... =)
alex_*** (2005-11-30 19:25:00) [25]компонент-то будет находится в основном потоке, вот где ты будешь с ожиданием находится, это вопрос... Тебе это действительно нужно? Может без этого? Потоки это не так просто
MasterVovan (2005-11-30 19:16:00) [26]2alex_***:
Как организовать поток, в котором будет находиться этот компонент со своими событиями?
alex_*** (2005-11-30 18:52:00) [27]я думаю чтоб ловить события, надо на них подписаться - обработчик свой впихнуть куда-ть. Можно у формы или у нужных компонентов перекрыть WndProc. Вот вопрос: как ты хотел ждать и одновременно чтоб какой-то компонент работал-генерил события? Отдельный поток только если
MasterVovan (2005-11-30 18:04:00) [28]2Reindeer Moss Eater:
Можно и так сказать... просто перепробовав тучу вариантов я уже не гнушаюсь заведомо не рабочими, как говорится "а мало ли"...
Reindeer Moss Eater (2005-11-30 17:53:00) [29]А ты конечно же ждал чуда, смотря на этот код?
MasterVovan (2005-11-30 17:45:00) [30]2ANB:
как и ожидалось при таком варианте:
while флаг do
begin
Sleep(50);
end;
все зависает в вечном цикле...
MasterVovan (2005-11-30 17:34:00) [31]2ANB:
> А зачем эту функцию в ДЛЛ то пихать ?
Просто есть набор программ, которые будут использовать данную функцию, не охота в каждую прописывать ее...
> Если из ДЛЛ, то Application лучше не использовать.
while флаг do
begin
Sleep(50);
end;
так оно будет?
> Если не хочешь, чтобы основное приложение подвисало - тогда выноси вызов функции в отдельный поток.
это то понятно, но не принципиально...
ANB (2005-11-30 17:12:00) [32]
> MasterVovan (30.11.05 16:56) [11]
Если из ДЛЛ, то Application лучше не использовать. Тогда только sleep. Если не хочешь, чтобы основное приложение подвисало - тогда выноси вызов функции в отдельный поток. А зачем эту функцию в ДЛЛ то пихать ?
MasterVovan (2005-11-30 16:56:00) [33]2DiamondShark:
в том то и дело что нельзя... функцию вызывает из длл приложение, и если ее завершить то приложение ответа от других уже не получит....
DiamondShark (2005-11-30 16:53:00) [34]Разбить функцию на две.
Вызвать первую.
Дождаться события.
Вызвать вторую.
MasterVovan (2005-11-30 16:49:00) [35]2Владислав:
Я так понял что да...
Владислав (2005-11-30 16:20:00) [36]
> Для определения этого релэя запускаю метод компонента DNS-
> ресолвинга. По окончанию ресолвинга происходит событие OnRequestDone
"метод компонента DNS- ресолвинга" выполняется асинхронно?
MasterVovan (2005-11-30 16:14:00) [37]Снова вопрос... Почитал про TDataModule но так и не понял, как его применить в моем случае... Как его можно запустить так, чтоб он как модальная форма приостанавливал выполнение функции до выхода из него?
MasterVovan (2005-11-30 16:02:00) [38]2Владислав:
хм... =) не слышал о таком чуде еще пока... но глянув в хелп, понял, что это может быть то что надо... надо только разобраться как его использовать на мое благо... =) Не имеется ли случаянно каких нить примерчиков?
Владислав (2005-11-30 15:52:00) [39]TDataModule?
MasterVovan (2005-11-30 15:51:00) [40]2ANB:
интересный вариант... попробую... но че-то как-то не очень мне нравится... =)
А какие нибудь еще есть способы решения? Пробовал уже на форму пихать этот компонент, все работает, но не знаю как форму скрыть... =)