Не проще ли проверить определенные обстоятельства до того, как форма откроется, а не открыть ее?
Я не вижу причины, по которой форма остается открытой, она должна исчезнуть сразу после нажатияOK
в диалоговом окне показа сообщения.
Showmessage блокируется, поэтому вы не сможете закрыть, пока все не будет в порядке (если вам нужно закрыть раньше, вы можете вернуть другой модальный результат (илисоздайте свой собственный, который не конфликтует с существующими, такими как mrUnavailable = 12). Затем вы можете показать сообщение, если ModalResult был mrunavailable.
Если он запускает код и просто не закрывается, то попробуйте использоватьRelease
вместо закрытия.
Редактировать: если вы повторно используете одну и ту же форму в нескольких местах, не используйте Release, если вы не хотите заново создавать форму каждый раз!сообщение, как другие предложили