Mam's WebSite
Delphiでお手軽プログラミング

トップページ⇒DelphiでWebアプリケーションを作成する

DelphiでWebアプリケーションを作成する


Delphiを起動して新規作成を行う

Delphiを起動し、ファイル→新規作成→その他・・・をクリックします。

左ペインの「WebBroker」を選択し、右ペインの「Webサーバーアプリケーション」をクリックし「OK」ボタンをクリックします。


「次へ」をクリックします。


今回はスタンドアロン アプリケーションを選択します。IISやApacheで動かす場合はCGIやISAPIやApacheダイナミックリンクモジュールを選択します。


VCLアプリケーションを選択して「次へ」をクリックします。


ポートのテストを押して他で使われていたらポート番号を変更します。そうでなければ完了をクリックします。

タグの「WebModuleUnit1」を選択します。


プロパティのActionsの右側の「・・・」ボタンをクリックします。


ウィンドウが表示されるのでツールバーの左の「新規作成」ボタンをクリックします。


新しくWebActionItem1が作成されましたのでクリックして選択します。


プロパティ「pathInfo」に「/mypost」と入力します。


「イベント」タブに切り替えてOnActionの右側の空白欄をダブルクリックします。


既に自動的にソースコードが作成されています。


ソースコードを記述する

以下の赤字部分のソースコードを記述してください。(ほとんどHTMLです。Postの処理も超簡単です。)
uses System.SysUtils, System.Classes, Web.HTTPApp;
type
  TWebModule1 = class(TWebModule)
    procedure WebModule1DefaultHandlerAction(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    procedure WebModule1WebActionItem1Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  private
    { private 宣言 }
  public
    { public 宣言 }
  end;
var
  WebModuleClass: TComponentClass = TWebModule1;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}
{$R *.dfm}

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content:=
    '<html>' +
    '<head>'+
    '<meta charset="UTF-8">'+
    '<title>Web サーバー アプリケーション</title>'+
    '</head>' +
    '<body>'+
    '<h2>Web サーバー アプリケーション</h2>'+
    '<form method="post" action="/mypost">'+
    '何か入力してください:<input type="text" name="txt">'+
    '<input type="submit">'+
    '</form>'+
    '</body>' +
    '</html>';
end;

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content:=
    '<html>' +
    '<head>'+
    '<meta charset="UTF-8">'+
    '<title>Web サーバー アプリケーション</title>'+
    '</head>' +
    '<body>'+
    '<h2>POST文字列の表示</h2>'+
    '<p>'+ Request.ContentFields.Values['txt'] +'</p>'+
    '<a href="/">戻る</a>'+
    '</body>' +
    '</html>';
end;

end.

実行する

ツールバーの実行ボタン(F9キーでも同じ)を押して実行します。(デバッガを使わずに実行でもOKです。)
実行するとウィンドウが表示されるので、「起動」ボタンをクリックします。(以下の場合はポート8080が待機状態になります。)

ファイアーウォールの警告が出たら、「アクセスを許可する」ボタンを押して許可してください。

ブラウザを起動する。

ブラウザを起動してURLに
http://localhost:8080/
と入力してEnterキーを押します。


「何か入力してください」の欄に何でもいいので入力して「送信」ボタンを押します。
POSTされた文字列がサーバーを介して表示されます。

Mam's WebSite