И не изобрёл ли я велосипед?
Суть вопроса: в программе есть достаточно длительная процедура(импорт данных из файла(ов)). Я вынес её в отдельный модуль, к нему - форма с отображением процесса(прогрессбар, лейблы с именем файла/количеством строк в нём/номером текущей(обрабатываемой) строки/количеством ошибок данных(если они есть)). Никаких кнопок управления или меню на форме нет, да и не нужны они там.
Если показывать форму через .Show, то всё нормально. Импорт идёт, данные обновляются. Но окно немодальное со всеми вытекающими.
В случае .ShowModal - всё виснет после отрисовки формы и дальше процесс не идёт. Я понимаю - код основной формы прерывается, а вот вызываемую-то за что?
После долгих мыканий решил проблему так: по созданию формы присваиваю переменной FirstRun значение True, а в событии onActivate - если FirstRun, то FirstRun := False и затем DoSomething (собственно процедура импорта).
Видел в сетях вариант с таймером, но это то же, что делаю я, только в профиль и сложнее.
Нет ли более простого/правильного способа сделать искомое? Ещё раз подчеркну - на вызываемой форме нет элементов управления. Форма создаётся динамически перед вызовом, по завершению операции - уничтожается.