VCL は、MainForm 以外のフォームが MDI 子フォームをホストすることをネイティブに許可しません。これは Borland 側のハードコーディングされた制限であり、Microsoft の MDI アーキテクチャの制限ではありません。Microsoft では、アプリケーション内の複数のウィンドウが MDI の子をホストすることを許可しています。Win32 API には MainForms の概念はありません。
以下の embarcadro c++ の例を embarcadro delphi に変換しようとしましたが、成功しませんでした。MDI 子フォームを作成するときに、「現在アクティブな MDI フォームはありません」というエラーが発生し続けます。
この C++ サンプルは、MDI 以外のプロジェクトが複数の MDI 親フォームをホストできるようにする方法を示しています。これらのフォームはいずれも VCL の MainForm ではありません。
情報付きでダウンロード (ダウンロードにはアカウントが必要です) http://cc.embarcadero.com/item/23574
直接ダウンロード (ダウンロードにアカウントは不要) http://www.delphibasics.info/MultipleMDIParentFormsInASingleApplication.zip
このサンプルを embarcadro c++ 言語から embarcadro delphi 言語に変換していただけると幸いです。ありがとうございました。