if we have a main form and we call from it a second form, where an TOpenDialog is, that we called e.g. by a button click, then immediately then second form will be closed, after opendialog.execute.
You can test it with the attached demo.
But now I see, it is enough to click on a TButton in the second form, even when the button has no eventhandler.
So it seems more to be a problem of the Tbutton.
Yes it is. If we replace the TButton with a TSpeedbutton, it is all OK.