ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

モード付きフォームを動的に作成 

更新 : 2009/03/07

 



解説:
フォームを表示して、それを閉じない限り、アプリケーション内の別フォームにアクセスできない。このようなフォームをモーダルフォーム(モード付きの状態)と呼びます。ダイアログボックスなどで、よく使われているので、ご存知の方も多いでしょう。
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;
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.