Delphi / C++Builder Starter で、ListView にサンプルデータを LiveBinding

Delphi や C++Builder にある [TListView コンポーネント](http://docwiki.embarcadero.com/Libraries/Tokyo/ja/FMX.ListView.TListView) は、さまざまな項目を表示することができるコンポーネントです。
[TProtoTypeBindSource コンポーネント](http://docwiki.embarcadero.com/Libraries/Tokyo/ja/Data.Bind.ObjectScope.TPrototypeBindSource)はサンプルデータを作成するコンポーネントです。
このふたつのコンポーネントを使ってサンプルデータを表示するアプリケーションを作ります。

Professional 以上の製品版エディションでは、ビジュアル LiveBinding という非常に便利な機能がありますが、Starter エディションにはありません。でも同じことはできるのです。

##実際にやってみよう

- できあがりはこんなの
- プロジェクトを作る
- コンポーネントを置く
- サンプルデータを定義する
- LiveBinding で結びつける

で完成です。コードは１行も書かないよ。

##できあがりはこんなの
色のイメージと、色の名前を表示するだけの簡単なアプリケーション
![qiita011.png](https://qiita-image-store.s3.amazonaws.com/0/164551/a3973267-65a1-8e21-44b5-6b48457119af.png)


##プロジェクトを作る
1. ウェルカムページの「マルチデバイスアプリケーション(Delphi)の新規作成」をクリックするか、メニューから「ファイル|新規作成|マルチデバイスアプリケーション - Delphi 」を選択します。
2. 空のアプリケーションを選択して、設計画面を開きます。

##コンポーネントを置く
1. ツールパレットから TListView, TProtoTypeBindSource, TBindingList コンポーネントをそれぞれドラッグアンドドロップで、フォーム上に置きます。
2. ListView は、オブジェクトインスペクタで Align プロパティの値を Client にして、フォームいっぱいに表示するようにします。
3. オブジェクトインスペクタで、ListView の ItemAppearance.ItemAppearance プロパティの値を ListItem から ImageListItem に変更します。
![qiita012.png](https://qiita-image-store.s3.amazonaws.com/0/164551/f2fb2ce5-44a7-d3ae-fb43-f780cd97c3f2.png)

使用するコンポーネントの下準備はこれで完了です。

##サンプルデータを定義する
TProtoTypeBindSource コンポーネントは予め幾つかのプロトタイプフィールドとそのデータが用意されている便利なコンポーネントです。
表示されるダイアログから目的の型のフィールドを選択するだけでサンプルデータテーブルを作成します。
1. 設計画面上の ProtoTypeBindSource コンポーネントをダブルクリックします。
2. 編集ダイアログが現れるので、新規作成ボタンをクリックします。
![qiita013.png](https://qiita-image-store.s3.amazonaws.com/0/164551/23ed61cb-8a06-450c-ef0a-3c8c5081abad.png)
3. フィールドの追加ダイアログが表示されるので、ColorsNames を選択して [OK]ボタンを押して追加します。
4. もうひとつフィールドを追加します。新規作成ボタンをクリックし、Bitmaps を選択して [OK]ボタンを押して追加します。
![qiita014.png](https://qiita-image-store.s3.amazonaws.com/0/164551/618c42a4-11e1-29de-8f8c-8d9b5b8f1ab5.png)
5. 追加すると編集ダイアログ上には２つのフィールドが表示されます。また、構造ペイン上にも追加されています。
![qiita016.png](https://qiita-image-store.s3.amazonaws.com/0/164551/17e9b0be-3852-e22f-2c69-51ca0bbbd79e.png)

これでサンプルデータの定義は完了です。

##LiveBinding で結びつける
コンポーネント側の準備もできたし、データの準備もできた。
後は LiveBinding でコンポーネントとデータを結びつけるだけです。

1. BindingList コンポーネントをダブルクリックします。
2. 現れた編集ダイアログのバインディングの新規作成ボタンをクリックします。
3. LiveBinding 新規作成のダイアログから TLinkFillControlToField を選択して [OK] ボタンをクリックします。
![qiita018.png](https://qiita-image-store.s3.amazonaws.com/0/164551/3a0b3876-daa6-7bc1-f871-183bd1773ab0.png)

4. 編集ダイアログを閉じて、オブジェクトインスペクタ上で追加した LinkFillControlToField の Control プロパティに、つなげる先のコンポーネントである ListView を設定します。
![qiita020.png](https://qiita-image-store.s3.amazonaws.com/0/164551/b053ea20-e086-5459-a426-b03250c5b8c5.png)

5. オブジェクトインスペクタ上で、LinkFillControllToField の FillDataSource に接続するデータセットである ProtoTypeBindSource を設定します。
6. ListView のテキスト項目と、データの ColorsName をつなげるため、オブジェクトインスペクタ上で、LinkFillControlToField の FillDisplayFieldName プロパティに ColorsName を設定します。つながると設計画面上にデータが表示されます。これも Delphi のいいところ。実際のイメージをつかみながら設計ができるのです。
![qiita021.png](https://qiita-image-store.s3.amazonaws.com/0/164551/973a8f79-cd0f-ee84-40dd-b03b13693fa9.png)

7. ListView のイメージ表示と、データの Bitmaps をつなげるために、オブジェクトインスペクタ上で、LinkFillControlToField の FillExpressions プロパティの [...] ボタンをクリックします。
![qiita022.png](https://qiita-image-store.s3.amazonaws.com/0/164551/eca93cd8-7c5d-b850-739c-d02b0390c936.png)

8. FillExpressions の編集ダイアログが表示されますので、新規追加ボタンを押します。
9. オブジェクトインスペクタ上で、SourceMemberName プロパティに Bitmap(Bitmap1) を設定します。
10. 次に ControlMemberName プロパティに Bitmap を設定して、データと表示をつなげます。つながると設計画面上にイメージ部分が追加されます。
![qiita023.png](https://qiita-image-store.s3.amazonaws.com/0/164551/1584b8fb-89ca-1828-af80-78e199b6e104.png)

これで完成です。