|
||
解説: データを比較したい、いくつかのウィンドウを同時に見たいなどで、フォームを複数表示したい場合があります。 C++Builder では、[新規作成]-[プロジェクト]-[MDIアプリケーション] で MDI (マルチ・ドキュメント・インタフェース = 親ウィンドウ内に複数の子ウィンドウを表示して管理)を簡単に自動作成できます。 今回は、ちまちまと手作業で作成してみます。 使用例: アプリケーション起動後、[New] メニューからウィンドウを複数作ります。[Window] メニューでそれらを並べて表示したり、重ねて表示したりできます。 コンポーネントとしては MainMenu を配置するだけです。 コーディングがこのあとちょっと煩雑なので、頑張って記述してください。 流れはこうです。 1.普通に Project1.cpp 作成。 FormStyle = fsMDIForm 2.Form2 追加。 FormStyle = fsMDIChild 3."Unit1.cpp" に "Unit2.h" をインクルード。 4.Form2 の OnClose に Action = caFree; を記述。 5.Form2 を選択可能なフォームに設定。 6.Form1 に MainManu 配置。[File]-[New] メニュー作成。 7.[New] メニューの OnClick イベントに以下を記述。 TForm2 *Form2; Form2 = new TForm2(Application); 8.Form1 で[Window]-[子ウィンドウを並べて表示] メニュー作成。 9.[子ウィンドウを並べて表示] メニューの OnClick イベントに以下を記述。 Tile() ; 10.Form1 で[Window]-[子ウィンドウを重ねて表示] メニュー作成。 11.[子ウィンドウを重ねて表示] メニューの OnClick イベントに以下を記述。 Cascade(); 以上。 コンパイルして完成です。 時間のある方は、自動作成で MDI を作って、動かしてみてください。 //------------------------------------------------------------------- void __fastcall TForm1::New1Click(TObject *Sender) { TForm2 *Form2; Form2 = new TForm2(Application); } //------------------------------------------------------------------- void __fastcall TForm1::N1Click(TObject *Sender) { // MDI 子ウィンドウを並べて表示 Tile() ; } //------------------------------------------------------------------- void __fastcall TForm1::N2Click(TObject *Sender) { // MDI 子ウィンドウを重ねて表示 Cascade(); } //------------------------------------------------------------------- |