Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

Вопрос: есть ли простой способ(какие то методы формы) задержать OnActivate до получения результатов проверки?
таймер на другой форме не предлагать
__________________
Сборник рабочего кода Процедур и Функций DelPhi
http://validcoderepo.narod.ru/
Pcrepair вне форума   Ответить с цитированием
Старый 12.07.2018, 00:45   #2
min@y™
Цифровой кот
Профессионал
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Адрес: 1600, пенсильвания-авеню, п.г.т. верхний Вашингтонск, 8126 км от МКАД, от поста ГАИ - налево.
Сообщений: 7,637
Репутация: 2356

icq: 100500
skype: kick-ass
По умолчанию

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

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

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

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

2. синхронизация БЕЗ синхро-объектов
Добавляем проверке событие OncompleteTest
(если найдется УЖЕ имеющееся подходящее можно просто использовать его)
форме ожидания добавляем метод РЕАКЦИИ на данное событие DoAfterCompleteTest
Код:

проверка.OnCompleteTest:=форма.DoAfterCompleteTest;  // СВЯЗЫВАЕМ их

OnActivate идет своим чередом НЕЗАВИСИМО от проверки(или вообще не идет) к примеру visible =false
проверка в свое время инициализирует данное событие.
Код:

OnCompleteTest(self);

и форма в ответ на это (при помощи СВОЕГО метода DoAfterCompleteTest) МЕНЯЕТ свое поведение (например visible:=true
P.S. слов было много, но кода будет мало.(почти весь он приведен выше)
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


16:34.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru