フレームの使い方と変更方法

提供: RAD Studio
移動先: 案内検索

フレームでの作業 への移動

データ対応コントロールとデータソース コンポーネントを配置した VCL フレーム
フォーム内で選択されている FireMonkey フレーム(設計時)

アプリケーションでフレームを使用するには、フォーム上に直接または間接的に、フレームを配置する必要があります。フレームは、フォームや、他のフレーム、または、パネルやスクロール ボックスなどの他のコンテナ オブジェクトに直接追加することができます。

フォーム デザイナでは、フレームをアプリケーションに追加するために 2 つの方法を提供しています。

  • フレームをツール パレットで選択し、それをフォーム、他のフレーム、他のコンテナ オブジェクトの上にドロップ。必要に応じて、フォーム デザイナは、プロジェクトにフレームのユニット ファイルを含めていいか許可を求めます。
  • ツール パレットの[Standard]カテゴリから[Frames]を選択し、フォームまたは他のフレームをクリック。プロジェクトに追加済みのフレーム一覧を示すダイアログが表示されるので、目的のフレームを選択し、[OK]をクリックします。

フレームをフォームまたは他のコンテナ上にドロップすると、Delphi は、選択されたフレームから派生した新しいクラスを宣言します。(同様に、新しいフォームをプロジェクトに追加した際も、Delphi は、TForm から派生した新しいクラスを宣言します。)つまり、元の(上位の)フレームに後から変更を加えると、それは埋め込みフレームに継承されますが、埋め込みフレームへの変更は上位フレームには伝わりません。

たとえば、データアクセス コンポーネントとデータ対応コントロールをグループにまとめて、何度も利用できるように(おそらく複数のアプリケーションにおいて)したいとしましょう。これを実現する一つの方法は、コンポーネント群を 1 つのコンポーネント テンプレートに集める方法ですが、一旦テンプレートを使用し始めると、後でコントロールの配置について気が変わった際に、そのテンプレートを利用した各プロジェクトに戻って、それぞれ手動で変更しなければなりません。

これに対して、データベース コンポーネントをフレームに配置した場合、後から発生した変更の修正は 1 箇所で行うことができます。元のフレームに施された変更は、プロジェクトが再コンパイルされた際に、その埋め込み下位オブジェクトにも継承されるからです。また、埋め込みフレームに加えた変更は元のフレームにもほかの埋め込み下位オブジェクトにも影響しないので、自由に埋め込みフレームを修正できます。埋め込みフレームの修正に関して 1 つだけ制限があります。それは、コンポーネントを追加できないことです。

フレームは、メンテナンスをシンプルにするだけでなく、リソース利用の効率化にも役立ちます。たとえば、アプリケーションでビットマップや他のグラフィックを使用するには、そのグラフィックを、TImage コントロールの Picture プロパティ(VCL)や Bitmap プロパティ(FireMonkey)に読み込みます。しかし、1 つのアプリケーションで同じグラフィックを繰り返し使用すると、フォームに配置された Image オブジェクトはそれぞれ、そのフォームのリソース ファイルには、グラフィックの別のコピーとして追加されていきます。(これは、Picture または Bitmap プロパティを一度だけ設定し、Image コントロールをコンポーネント テンプレートとして保存したとしても変わりません。)より良い解決策としては、Image オブジェクトをフレーム上にドロップして、そこにグラフィックを入れ、それからそのグラフィックを表示させたい場所でそのフレームを使用するのがよいでしょう。これによりフォーム ファイルは小さくなり、さらに、グラフィックは、元のフレーム上の Image を単純に修正するだけで、すでに配置されているものをすべて変更できるという利点が追加されます。

関連項目