サーバー アプリケーションの作成(TObject と DataSnap のチュートリアル)
チュートリアル: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;
}
-
-
- ToString は TObject から継承した関数なので、オーバーライドする必要があります。
-
12. ServerMethodsUnit1 ユニットで、[ファイル|使用するユニット...]を選択し、SharedStuffUnit ユニットを追加します。[OK]をクリックします。
13. ServerMethodsUnit の public ゾーンに、GetPerson 関数を以下のように宣言します。
Delphi の場合:
function GetPerson(aFirst, aLast: string): TPerson;
C++Builder の場合:
TPerson __fastcall TPerson::GetPerson(String ALast, String AFirst);
-
-
- GetPerson は TPerson クラスの新しいインスタンスを生成して返すのに使用され、名と姓が引数として渡されます。
-
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. サーバー ウィンドウを最小化します。次のステップへ進み、クライアント アプリケーションを作成します。