Help us understand the problem. What is going on with this article?

Delphi Community Edition Meet up ! - FireDAC VCL 編

More than 1 year has passed since last update.

これは、2018年8月3日に行なった Delphi Community Edition Meet up ! で行なったデータエクスプローラのデモで、FireDAC 接続を使って、サラッとデータを表示する VCL アプリケーションを作った際の説明です

データエクスプローラは、アプリケーションの作成の時にも効力を発揮します
予め接続する先のデータベースが決まっているのであれば、データエクスプロラー上に接続情報を作成しておくことで、必要なプロパティが設定されたコンポーネントを生成してくれます

デモで行なったこと

VCL アプリケーションを新規に作成して、ノンコーディングでデータを表示するアプリケーションを作り実行しました

デモの手順

1. VCL の新規アプリケーションを作成します

Delphi のメニューから「ファイル|新規作成|VCLフォームアプリケーション - Delphi」を選択します
後の手順のこともあるので、フォームの大きさを広げておきます
firedac01_1.gif

2. データエクスプローラから接続設定をフォーム上にドラックアンドドロップして、接続に必要なコンポーネントを生成します

データエクスプローラ側の設定等については Delphi Community Edition Meet up ! - データエクスプローラ編 を参照してくださいませ
このデモでは、データエクスプローラ上の Local DB (dbdemos.gdb) 内の BIOLIFE テーブルを使用しています

データエクスプローラ上で Local DB に接続して、BIOLIFE テーブルをドラックしてフォーム上にドロップします
この動作によって、フォーム上に予め接続設定が行なわれている Local Connection (TFDConnection) と、Biolife Table (TFDQuery) が自動生成されます

firedac01_2.gif

3. フィールドエディタに、テーブルのフィールドを追加します

Biolife Table コンポーネントをマウスで選択して、マウスの右ボタンをクリックします
ポップアップメニューから「フィールドエディタ」を選択します
表示されたフィールドエディタ上でマウスの右ボタンをクリックします
ポップアップメニューから「すべてのフィールドを追加」を選択します

オブジェクトインスペクタ上で、Biolife Table (TFDQuery) の Active プロパティが True になっていない場合は True にして、データベースのテーブルと接続しておきます

設計時でも接続できるってスゴイ!
firedac01_3.gif

4. 追加したフィールドをフォーム上にドラックアンドドロップして、データを表示するコンポーネントを生成します

フィールドエディタ上のフィールドをすべて選択して、フォーム上にドラックアンドドロップ!

VCL の場合は、データセット上のデータを扱うためのコンポーネントが予め決まっています
たとえば、文字データであれば TDBEdit、画像データなら TDBImage というようにです
なので、フィールドエディタからドラッグアンドドロップで、フィールドをフォーム上に配置すると、予め決まられたコンポーネントが生成されて、フォーム上に展開されます
firedac01_4_1.gif

実データが設計時に表示されれるので、コンポーネントの大きさの調整とかとても便利

5. ナビゲータを追加して、設定する

カレントのデータだけ見せるだけだと、面白くないので、データを前後に送るためのナビゲータを追加します
ツールパレットから、TDBNavigator をフォームにドラックアンドドロップします
オブジェクトインスペクタ上で、DBNavigator1 の DataSource プロパティを DataSource1 に設定します
firedac01_5.gif

6. 実行する

ナビゲータのボタンを操作すると、カレントのカーソルが前後し、対応するデータが表示されます
firedac01_6.gif

あとがき

今回は簡単なデモでしたので、フォームにそのままペタペタ貼りましたが、データモジュールを使って、ロジックと UI を分けた方がベターです(拡張や修正の面からも)

CYonezawa
風都在住の万事屋
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした