DUnitテストから始まっていますので、初心者のご迷惑をおかけして申し訳ありません。私は簡単なテストを実行しようとし、コンパイラは、私のテストクラスのSetUpを実行すると、 'フォームを作成することはできませんメッセージの返信を停止します。現在アクティブなMDIフォームはありません '。 DUnitテスト - フォームを作成できません。現在MDIフォームが有効になっていません
は、いくつかの研究の後、私は私の問題に関連するいくつかの説明が、どれを見つけました。問題は、私の子供の起源クラスのCreateメソッドを呼び出すときに起きることがあります。私はすべてのプロシージャと関数をTfrmFooから呼び出すことができるクラスを意味します。そして私のテストクラスはTestTfrmFooでなければなりません。 TFrmFooにはいくつかの基本コードTfrmParentFooを持つ親があります。
私はこのようなメソッドを作成して呼んでいる:その後
...
implementation
procedure TestTfrmFoo.SetUp;
begin
FfrmParentFoo := TfrmParentFoo.Create(nil);
FfrmFoo := TfrmFoo.Create(FfrmParentFoo);
end;
procedure TestTfrmFoo.TearDown;
begin
FfrmFoo.Free;
FfrmFoo := nil;
end;
...
、TfrmFooクラスのCreateメソッドが呼び出されると、次のエラーが発生:「フォームを作成することはできません。現在アクティブなMDIフォームはありません '。
私はすでに「fsNormal」の代わりに「fsMDIChild」と何もFormStyleプロパティを設定する私の子クラスのTfrmFooの作成上書きしようとしました。私はまた、睡眠(500)を使用することについていくつかのアイデアを発見したが、問題は続く。
編集:Remy Lebeau
貢献した後、私は子供を呼び出して、作成した子へのパラメータとしてそれを使用する前に、親フォームを作成するには、セットアップのテストを変更 。同じエラーメッセージ。私は間違った何かを変えましたか
その他のヒントはありますか? tks!
ありがとう、私はそれを試みます。欠点は、.dprファイルで親に付属しているすべての参照を手動でマップする必要があることです。一度は自動的に行われず、特定のフォルダ全体をマップする方法を見つけることができませんでした。 – DTondin