Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2018, 21:17   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию задержать событие OnActivate

Добрый день. есть событие OnActivate для формы при запуске приложения
перед OnActivate, в OnCreate, вызывается функция(асинхронная) проверки чего то с временем от 1 до 20 сек

Вопрос: есть ли простой способ(какие то методы формы) задержать OnActivate до получения результатов проверки?
таймер на другой форме не предлагать
Pcrepair вне форума Ответить с цитированием
Старый 11.07.2018, 23:45   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Почему именно OnActivate? Я тебе в соседнем форуме написал, как бы сделал я, но я хз, чо у тя там за условия.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.07.2018, 10:22   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

очень просто.
всего лишь синхронизировать асинхронный процесс проверки с ...

1. путем любого синхро-объекта(семафора,... )

OnCreate + проверка включает(блокирует) оный объект.
OnActivate проверяет и ЖДЕТ.
проверка по готовности отключает известный ей синхро-объект.

2. синхронизация БЕЗ синхро-объектов
Добавляем проверке событие OncompleteTest
(если найдется УЖЕ имеющееся подходящее можно просто использовать его)
форме ожидания добавляем метод РЕАКЦИИ на данное событие DoAfterCompleteTest
Код:
проверка.OnCompleteTest:=форма.DoAfterCompleteTest;  // СВЯЗЫВАЕМ их
OnActivate идет своим чередом НЕЗАВИСИМО от проверки(или вообще не идет) к примеру visible =false
проверка в свое время инициализирует данное событие.
Код:
OnCompleteTest(self);
и форма в ответ на это (при помощи СВОЕГО метода DoAfterCompleteTest) МЕНЯЕТ свое поведение (например visible:=true
P.S. слов было много, но кода будет мало.(почти весь он приведен выше)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает событие OnActivate Smitt&Wesson C++ Builder 8 03.09.2015 08:01
Отменить или задержать выключение ПК Janger Общие вопросы Delphi 6 18.09.2014 09:59
Не срабатывает OnActivate у формы SolovejK Общие вопросы Delphi 6 28.03.2010 15:26
Проблема с OnActivate Dennis777 Помощь студентам 6 04.01.2010 19:30
Как обойтись без события OnActivate? _Инженер_ Общие вопросы Delphi 4 01.10.2009 17:23