Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183

Задержать событие OnActivate

11.07.2018, 21:19. Показов 1697. Ответов 16
Метки нет (Все метки)

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

Вопрос: есть ли простой способ(какие то методы формы) задержать OnActivate до получения результатов проверки?
таймер на другой форме не предлагать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2018, 21:19
Ответы с готовыми решениями:

Задержать сообщение Label. Caption на экране
Есть участок кода, отслеживающий превышение параметров: Label87.Caption:='';//визуальный объект, содержащий пояснение ситуации if...

OnActivate и ShowModal
Всем привет! Есть такая проблема: Есть две формы: НА форме1 Грид с выведенными туда данными из запроса, запрос находится в...

как задержать на экране?
Привет! я тут застрял:) никак не могу найти какую нибудь команду которая остановит выход после выполнения "system" при...

16
Модератор
 Аватар для D1973
9902 / 6440 / 2454
Регистрация: 21.01.2014
Сообщений: 27,339
Записей в блоге: 3
11.07.2018, 22:15
Если это основная форма - то событие OnActivate не наступит до тех пор, пока не будет создана эта форма, а форма создана не будет до тех пор, пока не отработает функция, вызванная внутри OnCreate. Так что - все нормально.
Если форма не главная - в принципе все то же самое, только эту форму надо убрать из автозагрузки и создавать по мере необходимости.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
11.07.2018, 22:55
Я б конструктор перекрыл. Или вообще - в DPR вставил, чо там мне надо, ещё до создания главной формы.
Правда, мне непонятно, зачем тогда функция, которую надо вызвать до активации окна, сделана асинхронной. Ведь асинхронность именно для того и делается, чтобы выполняться параллельно основному потоку.
0
Модератор
 Аватар для D1973
9902 / 6440 / 2454
Регистрация: 21.01.2014
Сообщений: 27,339
Записей в блоге: 3
12.07.2018, 04:31
Упс, про то, что функция-то асинхронно вызываться должна - это я и не заметил...
Pcrepair, а можно глобальную задачу озвучить: для чего такая замута необходима? м.б. есть более эффективный способ?
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
12.07.2018, 07:56  [ТС]
сделал так(как обычно, по простому) :
- oncreate : вызов потока в котором асинхронный процесс, запуск таймера который ждет ДА из процесса
- таймер : когда ДА -> запуск процедуры(бывшего onactivate, хотя... можно присвоить не formactivate а что то ненужное а в таймере написать tmain.formactivate(self); и вызвать но это немного криво)

все работает.

никакого замута нет. просто нужно в самом начале запуска программы проверить наличие доступа в инет, только потом все инициализировать(переменные .контролы, логи).
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.07.2018, 08:41
Цитата Сообщение от Pcrepair Посмотреть сообщение
все работает.
Ну, раз всё работает, предлагать другое решение не буду.
0
12.07.2018, 08:55

Не по теме:

всегда есть нормальный способ а не тот, который выдумал автор )))

0
Модератор
 Аватар для D1973
9902 / 6440 / 2454
Регистрация: 21.01.2014
Сообщений: 27,339
Записей в блоге: 3
12.07.2018, 09:05
Цитата Сообщение от Pcrepair Посмотреть сообщение
нужно в самом начале запуска программы проверить наличие доступа в инет, только потом все инициализировать
т.е. нет тырнета - нет программы? Ну так почему тогда это нельзя сделать вообще ДО создания форм и запуска приложения?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,653
Записей в блоге: 21
12.07.2018, 10:34
выводится окно, стартует колесико, бар, заставка
и более ничего
в это время идут проверки
как только таймаут или проверка завершена, предлагается что-то делать дальше
все просто, без "откладывания"
https://www.cyberforum.ru/blog... g5310.html
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
12.07.2018, 16:34  [ТС]
пользователи пужаются если нет ГУИ. начинают звонить, спрашивать всякое - отвлекают

что касается окна с колесиком или без колесика - сказано же было: допформу не предлагать
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
12.07.2018, 16:37
Цитата Сообщение от Pcrepair Посмотреть сообщение
сказано же было: допформу не предлагать
Почему не хочешь сделать, как у всех нормальных людей-то?

Название: 7e1f40ddde10f6d931cbc5437d712c2f711dc1ad_hq.jpg
Просмотров: 56

Размер: 8.9 Кб
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,653
Записей в блоге: 21
12.07.2018, 18:13
а я умею без допформы колесико выводить ))
прямо на одной и той же )))
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
12.07.2018, 22:17  [ТС]
да все уже давно сделано и вопрос чиста тиоритцский. может все в форме уже предусмотрено а Я просто не знаю. такое довольно часто бывает.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,653
Записей в блоге: 21
13.07.2018, 07:30
вот именно чисто теоретически я и пытаюсь донести
все ОБРАБОТЧИКИ вызываются из большого цикла обработки сообщений
на этом построена вся концепция и логика работы программы во всех аспектах
если вы пытаетесь искусственно нарушить эту логику, то беда придет откуда не ждали
поэтому нельзя останавливать выполнение в одном обработчике и топать в другой...

нужно придумывать схемы, которые не мешают нормальной работе форм

вариантов для этого придумано мильон.
Например, очень хороший современный вариант с Single-Form Multi-Frame
форма одна, в зависимости от состояния программы на нее загружаются разные фреймы. логин, юзеринфо, работа с документом, все что угодно. И тогда переходить к следующей операции, когда закончится асинхронное действие - ну вообе нет никаких проблем.
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
13.07.2018, 22:18  [ТС]
Например, очень хороший современный вариант с Single-Form Multi-Frame
форма одна, в зависимости от состояния программы на нее загружаются разные фреймы. логин, юзеринфо, работа с документом, все что угодно. И тогда переходить к следующей операции, когда закончится асинхронное действие - ну вообе нет никаких проблем.
и это все есть в делфи хе3?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,653
Записей в блоге: 21
13.07.2018, 22:37
фреймы даже в D7 есть
0
14.07.2018, 01:37

Не по теме:

Цитата Сообщение от Pcrepair Посмотреть сообщение
и это все есть в делфи хе3?
Перевожу на русский.
И примеры этого можно найти на всемирной помойке? Киньте ссылку на пример. Или напишите пример.
Уж сколько лет я вижу от вас такие вопросы. И всякий раз слышу "да все уже давно сделано и вопрос чиста тиоритцский. может все в форме уже предусмотрено а Я просто не знаю. такое довольно часто бывает."
Не часто, а всегда. Книжки вы когда читать начнёте?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.07.2018, 01:37
Помогаю со студенческими работами здесь

Как задержать экран?
Например, нажимаю на кнопку - вызывается функция, в которой прописано что-то типа document.write("blablabla"); вот оно выводит...

Как задержать консоль?
Возникла загвоздка с программой, точнее с запуском. Подскажите, в чем ошибка.... #include <iostream> #include...

Как задержать запуск драйвера
В windows XP драйверу при старте не удается создать именованый event, так как \\BaseNamedObjects директория, в которую нужно поместить...

как задержать обновление в таблице
Hi everybody! Дело в следующем... Дано: Есть форма, в кот Textboxы имеют в качестве sourcedata имеет поля таблы. В форме...

Как задержать цикл на одну секунду
Помогите пожалуйста, не как не могу приостановить цикл на секунду, мне надо сделать так чтобы каждую секунду цикл выводил текст, пробовал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru