Вы не помещаете каждую форму в отдельную ветку.Вы помещаете каждую форму в основной поток.
В потоке есть только один цикл сообщений.Исключением является специальный цикл сообщений, который запускается, когда форма отображается модально.
pApplication->Run();
запускает цикл сообщений.Когда обработанные сообщения обрабатываются, они отправляются в соответствующую оконную процедуру.Когда сообщения отправляются, они доставляются синхронно прямо в оконную процедуру.
Вы можете создавать и отображать столько форм, сколько хотите, и обслуживать их все из одной и той же петли сообщений.Мало того, что вы можете сделать это, это способ сделать что-то.
Другое дело, как вы отображаете эти знания в своей инфраструктуре MVP, но запуск графического интерфейса из одного потокафиксированная точка в любом решении.
РЕДАКТИРОВАТЬ
Вы спрашиваете, как с помощью VCL запустить цикл сообщений, если у вас нет видимой главной формы.У вас есть два варианта:
- Создать невидимую форму, прежде чем позвонить
pApplication->Run();
. - Запустить свой собственный цикл сообщений.
В моем представлении вариант1, безусловно, лучший вариант.