ステップ 3 - スタイルリソースを RCDATA として追加する(C++)

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

FireMonkey コンポーネントの作成(C++) への移動

.style ファイルには、対応するプラットフォーム固有の(1 行の).rc ファイルが必要です。このファイルのルート名はコンポーネント ユニットに一致します。

たとえば、Windows の .rc ファイルと Mac の .rc ファイルは以下のようになります。

  • DialogButtons.win.rc
DialogButtonPanelStyle RCDATA "DialogButtonPanel_win.style"
  • DialogButtons.mac.rc
DialogButtonPanelStyle RCDATA "DialogButtonPanel_mac.style"

スタイルリソースを RCDATA として追加する

  1. [プロジェクト マネージャ]DialogButtonsPackage.bpl プロジェクトをダブルクリックしてアクティブにします。
  2. 作成しなければならない .rc ファイルごとに以下の作業を行います。
    • [ファイル|新規作成|その他...|その他のファイル|テキスト ファイル]を選択し、[新規ファイル]ダイアログで[.rc リソース ファイル]を選択します。
    • 上に示した 1 行を追加し、正しいファイル名で保存します。
    .rc ファイルがプロジェクト ツリーの[Contains]ノードに表示されます (編集しやすいよう .style ファイルをプロジェクトに追加することもできますが、追加しなくてもコンパイルには問題ありません。.style ファイルは .rc ファイルと同じディレクトリにあるので、自動的に見つかります)。
  3. これらのスタイルを読み込むために、DialogButtons.hTStyledControl.GetStyleObject のオーバーライドを宣言し実装します。
// DialogButtons.h
#include<System.Types.hpp>
#include<FMX.Styles.hpp>
...
protected:
     Fmx::Types::TFmxObject* __fastcall GetStyleObject(void);


// DialogButtons.cpp
...
Fmx::Types::TFmxObject* __fastcall TDialogButtonPanel::GetStyleObject(void)
{
 const UnicodeString Style = "DialogButtonPanelStyle";
	if (StyleLookup == "") {
	return TStyleManager::LoadFromResource((unsigned int)HInstance, Style,
	  (wchar_t*) RT_RCDATA);
	}
	return TStyledControl::GetStyleObject();
}

プラットフォームごとの条件指令によって、.rc ファイルからコンパイルされた適切な .res が含められます。RCDATA 項目の名前(両方のファイルで同一)は関数内の定数になっています。

メモ: .style ファイルにあるルート(TRectangle)コンポーネントの StyleName は RCDATA 名と同一です。StyleName が必要なのはスタイルがスタイル ブックに組み込まれている場合で、StyleName はスタイルの内容を表す名前になっています。そのため、含めておくことを推奨します。ただし、直接読み込まれたときは、ルートの StyleName は使用されず、不必要なものとして扱われます。

この関数がスタイルを読み込むのは、StyleLookup が空白である場合だけです。TStyleManager を使って現在のモジュール ハンドル(設計時はパッケージの .bpl、実行時はプログラムの .exe または .dll)でスタイルを読み込みます。存在しない RCDATA にアクセスしようとすると例外が発生するからです。空白でない場合は、継承した動作により、名前の指定されたスタイルを見つけるか、クラス名からデフォルト スタイルを見つけます。

  1. コードが準備できたら、[プロジェクト マネージャ]でパッケージ プロジェクトを右クリックして、[インストール]を選択します。これによりパッケージ プロジェクトがコンパイルされ、コンポーネントが[ツール パレット]に追加されます。

前のステップ

次のステップ

関連項目