|
||
解説: フォームを表示して、それを閉じない限り、アプリケーション内の別フォームにアクセスできない。このようなフォームをモーダルフォーム(モード付きの状態)と呼びます。ダイアログボックスなどで、よく使われているので、ご存知の方も多いでしょう。 VCL では ShowModal メソッドを使うことでこのようなフォームを表示できます。 フォームをモード付きで表示した場合、他のフォームが一時的に無効になります。モード付きフォームを閉じなければアプリケーションの実行を続けることはできません。 フォームが閉じられるとモード付きの状態は解除されます。 使用例: Form2 をモード付きで表示します。 準備としては、フォームの新規作成で Form2 を追加します。 次にプロジェクトが勝手にフォームを作らないように、プロジェクトメニューの [オプション] をクリックして、[フォーム] ページにある [選択可能なフォーム] に Form2 を移動しておきます。これは、ユーザーと対話する時だけフォームを作成するためです。 フォームは使うときだけ、メモリ上に存在すればいいので、常にメモリに格納しておく必要はありません。メモリの容量を減らさないためにも、必要時なときだけ作成するようにしておきます。 コンポーネントは Form1 に Button をひとつ置いてください。 コーディングでは、まずファイルメニューの [ユニットを使う] で Unit2 を指定しておきます。 Button1 の OnClick イベントハンドラで、ShowModal メソッドを使って、Form2 をモード付きフォームで作成しています。 フォームを動的に生成しているので、自分で破棄しておきます。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form2 = new TForm2(this); Form2->ShowModal(); delete Form2; } //------------------------------------------------------------------- |