Можно описать эту так сказать форму как переменную (var msg:"диалог")? Ну или создать её, допустим, при старте программы
Код:
procedure Form.Create
msg:=CreateMessageDialog(...)
Потом вызывать её когда захочется, а после проведения действий разрушить (типа msg.Destroy). А потом снова вызывать.
Проблема с повторным запуском. Так как это форма её запуск происходит так: msg.create(AOwner: TComponent). Что нужно писать в скобках?