Чем вам не понравилось предложение Евгения? Модифицируйте Loop в HostMenus и собирайте спокойно все в dll. В нем же можно убрать открытие главного окна, если я правильно понял. При вызове функции запускаете петлю, как все выполнится, останавливайте петлю. Например, в секции CLOSE присвоить## Код:
```
HostMenus.stop := TRUE;
```
А в петле условие будет выглядеть так## Код:
```
WHILE (WinApi.GetMessageW(msg, 0, 0, 0) # 0) &  ~ stop DO
```
Сам не пробовал, сразу говорю, но из опыта ручного кручения Loop -- это должно сработать.

> -- Евгений Темиргалеев писал(а):
> Отложенные действия можно крутить самому: Если гуй запускается время от времени, типа окон настроек, то, наверное, можно переделать Loop на ручной пуск:- открытие окна и вызов Loop- по "закрытии" -- окно ставит специальный флаг и Loop останавливается.