C++Builder で Vcl アプリケーションを作成すると、フォームが自動作成され、次のような行が追加されます。
Application->CreateForm(__classid(Tmain), &main);
私はフォームの作成に を使用する傾向があるnew
ため、メイン フォームの行を除いて、これらの行をすべて削除します (議論については、 Rob Kennedyによるこの記事を参照してください)。
私が最近発見したことは、CreateForm() が純粋な仮想メソッドを含むフォームを非常にうまく作成するということです。これにより、実行時に「純粋な仮想関数が呼び出されました」というエラーが発生する可能性があります。対照的に、を使用してフォームを作成するとnew
、コンパイル時に「抽象クラスのインスタンスを作成できません」というエラーが発生します。
new
実行時エラーよりもコンパイル時エラーの方が望ましいので、メインフォームを含むすべてのフォームで使用できるかどうか疑問に思う必要がありますか? Application.CreateForm()
舞台裏で他に何が行われていますか?これを複製できますか?