Delphi / C++Builder で簡単にUIの印象を変える方法 - Styleの適用 - FireMonkey と VCL


##Style適用でUIの見た目をより良く
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/6b6f11c4-a733-27d7-0756-54f76f252e35.png)
なんだかんだとやはり見た目は大事であります。本質的な機能が重要であることは言うまでもありませんが、「このアプリを使ってみるか」という、とっかかりの部分には作用することもありますし、デベロッパーにおいても、見た目のよいアプリを作れたときの満足感につながることもあります。

Delphi / C++Builder / RAD Studioを使った開発時に、UIの印象を簡単に変えることができる Style機能の適用方法についてご紹介します。

マルチデバイス開発を成し遂げる FireMonkeyと、Windows開発向けのVCL、ともにStyle機能がありますが、使用方法が異なりますので、それぞれ下記にご紹介いたします。

 
###【 FireMonkey編 】

iOS, Mac OS, Android, Windows 向けのマルチデバイス開発、クロスプラットフォーム開発を単一のコードで成し遂げる立役者でありますFireMonkeyフレームワークを使用している場合の、もっとも簡単な Style 適用方法の一例について記述します。 (ここでは10.1Berlinを使用した際の手順を記載いたします。）

 

1. RAD Studio / Delphi / C++ Builderを起動します。
<br>

1. スタイルを適用したいプロジェクトを開くか、もしくは [ファイル]-[新規作成]-[マルチデバイスアプリケーション] (DelphiでもC++ BuilderどちらでもOK)を選択し、[空のアプリケーション] を選択し [OK] ボタンをクリックしプロジェクトを新規に作成します。
<br>
1. 「ツールパレット」 の「Standard」内の [TStyleBook] コンポーネントをダブルクリックするか、ドラッグドロップしてフォーム上に配置します。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/e6b1af5d-b18c-8408-140a-0e4631d251bf.png)
※このTStyleBookコンポーネントがスタイルを登録しておくための入れ物的な役割をしてくれます。
<br>
1. フォームをクリックした後、画面左下の「オブジェクト インスペクタ」内の [StyleBook ]プロパティを選択し、ドロップダウンリストからTStyleBookコンポーネント名称を選択します。（TStyleBookコンポーネントの名称はデフォルトではStyleBook1となっています）
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/47bb3792-2832-f83f-67f4-152303a20979.png)
※この選択によって、フォームにStyleBook1が持っているスタイルが適用されるよう関連付けています。この手順では、またStyleBookにはスタイルが入れられていないので、何も見た目は変わりません。この後の手順でスタイルの登録がStylebook1に行われて初めて効果を表します。
<br>
1. フォーム上に配置されているStyleBookコンポーネントのアイコンをダブルクリックして「スタイルデザイナ」を開きます。
<br>
1. スタイルデザイナ内の上部に表示されている右から7番目のアイコン[新しいプラットフォームの追加]ボタン（フォルダに"+"マークがついてるアイコン)をクリックしします。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/0d667279-3aa0-f7c4-b490-67fcafe26250.png)
<br>

1. 「新しいプラットフォームの選択」ダイアログが開きます。[Windows], [OSX], [iOS], [Android]が表示されていますので、一つをクリックし[選択]ボタンをクリックします。メニュー内「ププラットフォーム」に選択したOSが追加されています。
※この手順で、OS毎のスタイルの入れ物を用意しています。
<br>
1. 上記手順6~7の手順を繰り返して[Windows], [OSX], [iOS], [Android]のすべてを登録してしまいましょう。
<br>
1. 「プラットフォーム」のドロップダウンリストから「Windows」を選択し、Windows向けアプリを作ったときのStyle設定を始めます。
<br>
1. スタイルデザイナ内の上部に表示されている左から２番目のアイコン[開く]をクリックします。
<br>
1. 「開く」ダイアログが開きますので、Windowsアプリ向けのスタイルファイルを選択します。スタイルファイルのある場所は、デフォルトでは「C:\Users\Public\Documents\Embarcadero\Studio\18.0\Styles」フォルダの中です。ここでは「RubyGraphite.style」をWindows向けに選び「開く」ボタンをクリックして登録してみましょう。
<br>
1. 同様に手順10~11を繰り返し[OSX]に「Light.Style」, [iOS]に「Blend.Style」, [Android]に「Dark.style」を登録します。これで各OS向けのStyle登録は整いました。
<br>
1. 上部に表示されているスタイルデザイナのタブを右クリックして「このページを閉じる」を選択します。「エディタを終了する前にこのスタイル変更内容を適用しますか？」のダイアログがでるので、[はい]をクリックします。
<br>
1. フォーム表示画面にもどります。すでにスタイルが適用されているの見ることができます。
※必要なコンポーネント、例えばButton, CheckBox Trackbar, Edit などを貼り付けてどのように表示が変わっているか確認してみてください。
<br>
1. フォームデザイナ上の「スタイル」ドロップダウンから[Windows], [OSX], [iOS], [Android]を選んでみると、手順12で選択したスタイルがそれぞれ適用されていることが確認できます。

以上でFireMonky使用時のスタイル設定の基本は終了です。

 

###【 VCL編 】

Windows向けにコンポーネントを使ったビジュアル開発を成し遂げるVCL。そのVCLを使用している時ののもっとも簡単な Style 適用方法の一例について記述します。 (ここでは10.1Berlinを使用した際の手順を記載しています。）

 

1. RAD Studio/Delphi/C++ Builderを起動します。
<br>

1. スタイルを適用したいプロジェクトを開くか、もしくは[ファイル]-[新規作成]-[マルチデバイスアプリケーション](DelphiでもC++ BuilderどちらでもOK)を選択し、[空のアプリケーション]を選択し[OK]ボタンをクリックしプロジェクトを新規に作成します。
<br>

1. メニューの[プロジェクト]-[オプション]を選択します。「プロジェクト オプション」ダイアログが開きます。
<br>

1. 「プロジェクトオプション」左側の[アプリケーション]-[表示]をクリックします。
<br>

1. 右側に表示された「カスタムスタイル」内から、使用したいスタイルのチェックボックスを「ON」にします。この例では「Metropolis UI Blue」のチェックボックスをONにしてみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/8d5cb4f9-4b15-7068-577d-0bd0ebc7808e.png)
<br>

1. 下部の「デフォルトスタイル」にチェックボックスがONとなっているスタイルが表示されるので、それを選択して、[OK]ボタンをクリックします。

1. Shift+Ctrl+F9キーを押してビルドします。 ビルドされたアプリにはスタイルが適用されています。
※VCLのスタイルはフォームデザイナ上では適用されず、ビルド後のアプリにて適用されます。
 

以上でVCL使用時のスタイル設定の基本は終了です。

 

■参考情報：
Docwiki:[FireMonkey スタイルの編集](http://docwiki.embarcadero.com/RADStudio/Berlin/ja/FireMonkey_%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%AE%E7%B7%A8%E9%9B%86)
Dockwiki: [VCL スタイルの概要](http://docwiki.embarcadero.com/RADStudio/Berlin/ja/VCL_%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%AE%E6%A6%82%E8%A6%81)