サーバー アプリケーションの作成(TObject と DataSnap のチュートリアル)

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

チュートリアル:DataSnap で PODO(Plain Old Delphi Object)を渡す への移動


サーバー アプリケーションの作成

サーバー アプリケーションを作成するには、次の手順に従います。

1. RAD Studio を開きます

2. [ファイル|新規作成|その他...]を選択します。

3. 左列の[C++Builder プロジェクト]または[Delphi プロジェクト]を展開します。

4. [DataSnap Server]ノードから[DataSnap Server]を選択し、[OK]をクリックします。

5. 以下の手順で、アプリケーションの種類を指定します。

  • [フォーム アプリケーション]を選択し、[次へ >>]をクリックします。
  • [FireMonkey アプリケーション]を選択し、[次へ >>]をクリックします。
  • デフォルト値のまま[TCP/IP]プロトコルをオンにします。
  • [サンプル メソッド]チェックボックスをオフにし、[次へ >>]をクリックします。
  • [ポートのテスト]をクリックして、ポート 211 が開かれているかどうかを確かめたうえで、[次へ >>]をクリックします。
  • [TComponent]がデフォルトで選択されたまま、[完了]をクリックします。
  • メニュー バーの[すべて保存]ボタンをクリックしてプロジェクトを保存し、すべての項目を同じフォルダに保存します。

メモ: 使いやすいように、最初のユニットを「FormServerUnit」、プロジェクトを「PODOServer」と命名します。

6. 次のいずれかを選択します。

  • Delphi の場合: [ファイル|新規作成|ユニット - Delphi]
  • C++ の場合: [ファイル|新規作成|ユニット - C++Builder]

7. 「SharedStuffUnit」という名前で保存します。

8. SharedStuffUnit で、クラス TPerson を以下のように宣言します。

Delphi の場合:

  TPerson = class (TObject) 
  public
    property Lastname: string;
    property Firstname: string;

    constructor Create(ALast, AFirst: string);
    function ToString: string; override;
  end;

C++Builder の場合:

  class TPerson: public TObject {
  public:
    UnicodeString Lastname;
    UnicodeString Firstname;

    TPerson(String ALast, String AFirst);
    __fastcall UnicodeString ToString(void);
  };

9. Delphi の場合: Ctrl+Shift+C というキーの組み合わせを使って、取得アクセサと設定アクセサを生成します。

  TPerson = class (TObject)
  private
    FLastName: string;
    FFirstname: string;
    procedure SetFirstname(const Value: string);
    procedure SetLastName(const Value: string);
  public
    property LastName: string read FLastName write SetLastName;
    property Firstname: string read FFirstname write SetFirstname;

    constructor Create(ALast, AFirst: string);
    function ToString: string; override;
  end;

10. SharedStuffUnit で宣言した TPerson クラスのコンストラクタを以下のように実装します。

Delphi の場合:

  constructor TPerson.Create(ALast, AFirst: string);
  begin
    FLastName := ALast;
    FFirstName := AFirst;
  end;

C++Builder の場合:

  TPerson::TPerson(String ALast, String AFirst)
  {
    Lastname = ALast;
    Firstname = AFirst;
  }

11. SharedStuffUnit で、ToString 関数を以下のようにオーバーライドします。

Delphi の場合:

  function TPerson.ToString 
  begin
    Result := Firstname + ' ' + Lastname;
  end;

C++Builder の場合:

  UnicodeString __fastcall TPerson::ToString(void)
  {
    return Firstname + " " + Lastname;
  }
  • ToStringTObject から継承した関数なので、オーバーライドする必要があります。

12. ServerMethodsUnit1 ユニットで、[ファイル|使用するユニット...]を選択し、SharedStuffUnit ユニットを追加します。[OK]をクリックします。

13. ServerMethodsUnitpublic ゾーンに、GetPerson 関数を以下のように宣言します。

Delphi の場合:

  function GetPerson(aFirst, aLast: string): TPerson;

C++Builder の場合:

  TPerson __fastcall TPerson::GetPerson(String ALast, String AFirst);
  • GetPersonTPerson クラスの新しいインスタンスを生成して返すのに使用され、名と姓が引数として渡されます。

14. 関数の結果を以下のように設定します。

Delphi の場合:

  function TServerMethods1.GetPerson(aFirst, aLast: string): TPerson;
  begin
    Result := TPerson.Create(ALast, AFirst);
  end;

C++Builder の場合:

  TPerson *TServerMethods1::GetPerson(String ALast, String AFirst)
  {
    TPerson *p;
    p = new TPerson(ALast, AFirst);
    return p;
  }

15. [実行|実行]を選択するか F9 を押して、サーバーを実行します。

16. サーバー ウィンドウを最小化します。次のステップへ進み、クライアント アプリケーションを作成します。

次のチュートリアル

関連項目