Delphi Starter でデータセットを使う

無償で提供されている Delphi の Starter エディション

- ClientDataSet を使って、データセットを扱うことができます。
- 製品版にある、便利なビジュアルライブバインディングは搭載されていませんが、LiveBinding ウィザードを使って、データセットとコンポーネントを関連付けることができます。

# 実際に簡単なサンプルを作ってみる
( Delphi 10.2.1 Tokyo を使用しています )
ざっくり分けて手順は３つ

- プロジェクトを作る
- ClientDataSet でデータセットを作る
- LiveBinding ウィザードでデータセットとコンポーネントを関連付ける

## プロジェクトを作る
1. ウェルカムページ上にある「マルチデバイスアプリケーション (Delphi) の新規作成」をクリックするか、メニューの [ファイル | 新規作成 | マルチデバイスアプリケーション - Delphi ] を選択する
![qiita01.png](https://qiita-image-store.s3.amazonaws.com/0/164551/cc7c2a4c-3968-bbb3-b134-0bc74b29c24e.png)
![qiita02.png](https://qiita-image-store.s3.amazonaws.com/0/164551/32304b71-2c30-866e-2f69-9871d29c62c0.png)

2. 「マルチデバイスアプリケーション」の画面が表示されるので「空のアプリケーション」を選択して [OK] ボタンをクリックする
![qiita03.png](https://qiita-image-store.s3.amazonaws.com/0/164551/8b3417d3-9125-c7f2-187f-b8068139244d.png)

プロジェクトが生成されて、フォーム設計画面が表示されます。
![qiita04.png](https://qiita-image-store.s3.amazonaws.com/0/164551/58084f81-568c-0ff0-c17f-b2a15ffba9be.png)


## ClientDataSet でデータセットを作る
1. ツールパレットから TClientDataSet コンポーネントをドラックアンドドロップでフォーム上に配置する
![qiita05.png](https://qiita-image-store.s3.amazonaws.com/0/164551/106a4028-d2d2-d757-84a1-0bd80def93d5.png)

2. オブジェクトインスペクタ上の「フィールドエディタ」をクリックする
![qiita06.png](https://qiita-image-store.s3.amazonaws.com/0/164551/88e72f62-18a7-3ec3-923f-aff53e79b624.png)

3. 表示されたフィールドエディタ上でマウスの右ボタンをクリックして、「フィールドの新規作成」を選択する
![qiita07.png](https://qiita-image-store.s3.amazonaws.com/0/164551/06bdba8a-d120-8f4e-969b-9d95042fb5b6.png)

4. 「フィールドの新規作成」ダイアログでフィールドの名前・型・サイズを入力して [OK] ボタンを押す（フィールドの種類は「データ」）
![qiita08.png](https://qiita-image-store.s3.amazonaws.com/0/164551/c9c1c4f5-b9ff-eebd-d50e-bf363394f132.png)

5. 作りたいフィールドの個数分 3-4 の手順を繰り返す
6. フィールドエディタを閉じる
7. オブジェクトインスペクタ上の「データセットの作成」をクリックする
![qiita09.png](https://qiita-image-store.s3.amazonaws.com/0/164551/71e65503-d848-f728-c556-9b8ebd0b0913.png)


## LiveBinding ウィザードでデータセットとコンポーネントを関連付ける
1. ツールパレットから TBindSourceDB コンポーネントをドラッグアンドドロップでフォーム上に配置する
![qiita10.png](https://qiita-image-store.s3.amazonaws.com/0/164551/50abfa5b-d96a-4ca0-8f52-899846d5c9ff.png)


2. オブジェクトインスペクタで、DataSource プロパティに ClientDataSet1 をセットする
3. オブジェクトインスペクタ上の「ナビゲータの追加」をクリックする
![qiita11.png](https://qiita-image-store.s3.amazonaws.com/0/164551/377461c3-fd9a-d140-ca81-8f36437c237e.png)


4. ツールパレットから TBindingList コンポーネントをドラッグアンドドロップでフォーム上に配置する
![qiita12.png](https://qiita-image-store.s3.amazonaws.com/0/164551/69485fa1-c93d-a730-7437-6f2841019d5b.png)


5. 配置した TBindingList コンポーネントをダブルクリックするか、オブジェクトインスペクタ上の「バインディングコンポーネント」をクリックして BindingList の編集ダイアログを表示する
![qiita13.png](https://qiita-image-store.s3.amazonaws.com/0/164551/ef83dc27-fe09-0519-4b23-b1893ca3c2b7.png)


6. 新規作成ボタンの横にある▼をクリックし、「LiveBinding ウィザード」を選択する
![qiita14.png](https://qiita-image-store.s3.amazonaws.com/0/164551/8d693c3e-87e8-d1a5-59bc-5db1860013fd.png)


7. バインディングタスクは「グリッドをデータソースとリンク」を選択して [次へ]をクリックする![qiita15.png](https://qiita-image-store.s3.amazonaws.com/0/164551/3eaf7323-d518-2659-365a-d185c4317349.png)


8. グリッドでは TStringGrid を選択して [次へ]をクリックする
![qiita16.png](https://qiita-image-store.s3.amazonaws.com/0/164551/6496edf5-f5b6-bf2c-642b-316dd7f2f868.png)


9. データソースでは BindSourceDB1 を選択して [完了]をクリックする
![qiita17.png](https://qiita-image-store.s3.amazonaws.com/0/164551/158990ab-ff7c-ef4c-1d18-8fb3471a24cb.png)


10. フォーム上に自動生成された StringGrid と NavigatorBindSourceDB の位置や大きさを、マウスで調整する
![qiita18.png](https://qiita-image-store.s3.amazonaws.com/0/164551/b5bb8382-ee93-6486-255d-9a7674bdc094.png)


これで完成です。実行してナビゲータの＋ボタンを押すとグリッド上でデータを書き込んだり、－ボタンを押して削除することができます。
![qiita19.png](https://qiita-image-store.s3.amazonaws.com/0/164551/80397296-285d-1040-67d3-61b920485491.png)

ふっふっふ、コードを１行も書いていないんだぜ

## 注意点
書き込んだデータを保存する処理は、上記では行なっていないので、アプリケーションを閉じると書き込んだデータは消えます。 
データは XML 形式などで保存できます。保存したい場合は TClientDataSet.SaveToFile メソッドを使用します。midas.dll は、Starterでは配布できないので、Starter がインストールされている開発環境のみで使用してください