表示: Delphi
C++
表示設定
VCL モードなしフォームを動的に作成する
提供:RAD Studio
VCL コンポーネントを使用したアプリケーションの開発 への移動
モードなしフォームは,別のウィンドウの下になって隠されるか,ユーザーによって閉じるまたは最小化されるまで表示されているウィンドウです。この手順では,RAD Studio を使用して,モードなしフォームを動的に作成します。
この VCL アプリケーションの構築は,次の手順で構成されます。
- プロジェクトディレクトリを作成する。
- プロジェクトに 2 つのフォームを作成する。
- 起動時の 2 番めのフォームの起動を削除する。
- フォームをリンクする。
- モード付きフォームを作成して表示するためのコントロールをメインフォームに作成し,そのイベントハンドラを記述する。
- アプリケーションをビルドして実行する。
2 つのフォームを作成する
- [ファイル > 新規作成 > その他]の[Delphi プロジェクト > ]または[C++Builder プロジェクト]を選択し,[VCL フォームアプリケーション]アイコンをダブルクリックします。VCL フォームデザイナに Form1 が表示されます。
- [ファイル > 新規作成 > その他 > Delphi プロジェクト > Delphi ファイル]または[ファイル > 新規作成 > その他 > C++Builder ファイル]を選択し,フォームのアイコンをダブルクリックします。VCL フォームデザイナに Form2 が表示されます。
起動時の Form2 の起動を削除する
- [プロジェクト > オプション]を選択します。[プロジェクトオプション]ダイアログが表示されます。
- [自動作成フォーム作成]リストで Form2 を選択し,[>]をクリックします。Form2 が[使用可能フォーム]リストに移動します。
- [OK]をクリックしてダイアログを閉じます。
Form1 と Form2 をリンクする
- Delphi の場合は,Form1 を選択し,[ファイル > ユニットを使う]を選択します。C++ の場合は,Form1 を選択し,[ファイル > ユニットヘッダーファイルの追加]を選択します。[ユニットの使用]ダイアログが表示されます。
- ダイアログで Unit2(Form1 が参照する必要があるフォーム)を選択します。
- [OK]をクリックします。Delphi の場合は,Unit2 というユニット名を含む uses 節が Unit1 の実装部に配置されます。C++ の場合は,#include “Unit2.h” 指令が Unit1.h に追加されます。
Form1 から Form2 を表示する
- 必要であれば,Form1 を選択します。ツールパレットの[Standard]ページから,フォームにボタンを配置します。
- オブジェクトインスペクタで[Button1]を選択し,[イベント]タブで OnClick イベントをダブルクリックします。コードエディタが表示され,TForm1.Button1Click(Delphi)または TForm1::Button1Click(C++)イベントハンドラブロックにカーソルが置かれます。
- 次のイベントハンドラコードを入力します。
Form2 := TForm2.Create(self); Form2.Show;
Form2 = new TForm2( this ); Form2->Show();
メモ: モードなしフォームのインスタンスがほかにも必要な場合は,インスタンスごとに個別のグローバル変数を宣言します。多くの場合は,フォームの作成時に定義したグローバル参照(フォームの Name プロパティと同じ名前の変数)を使用します。
アプリケーションをビルドして実行する
- プロジェクトのすべてのファイルを保存し,[実行 > 実行]を選択します。アプリケーションが実行され,Form1 が表示されます。
- ボタンをクリックします。Form2 が表示されます。
- Form1 をクリックします。Form1 がアクティブフォームになります。Form2 は,最小化または閉じられるまで表示されたままです。