delphi.gif (306 バイト) PageProducerの使い方


PageProducerはCGIなどで、Webモジュールに追加して使うコンポーネントです。PageProducerはHTMLテンプレートを、別のHTMLコードに置き換えて動的なHTMLを作るとき使用できます。

 

toach.gif (917 バイト) PageProducerをWebモジュールに追加するには

  1. InternetコンポーネントパレットからPageProducerを選んでWebモジュール(デフォルトではWebModule1)にドロップします。
  2. オブジェクトインスペクタでHTMLDocプロパティエディタを開いてHTMLテンプレート(下記の例1を参照)を追加します。
  3. イベントタブに切り替えてOnHTMLTagイベントハンドラを追加します。(例2)
  4. WebモジュールでActionsプロパティにPageProducerを使用する動作項目を追加して、PageProducerを動作させるためのコードを記述します。(例2)

 

toach.gif (917 バイト) 例1 HTMLテンプレートの例

「開発者ガイド」の例では、<#UserName>をHTMLテンプレートとして、CGIの中でこれを実際のユーザ名で置き換えるような例が出ています。このときHTMLDocプロパティは

<#UserName>

とします。

 

toach.gif (917 バイト) 例2 コード例

{  Defaultアクション(PageProducerを使う準備) }
procedure TWebModule1.WebModule1WebActionDefault(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  PageProducer1.HTMLFile := 'C:\Webshare\wwwroot\TestPageProducer.htm'; // HTMLテンプレートが含まれるファイル
  Response.Content := PageProducer1.Content;
end;

{ PageProducer タグ変換ハンドラ }
procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
  const TagString: String; TagParams: TStrings; var ReplaceText: String);
begin
  if CompareText(TagString, 'UserName')=0 then
    ReplaceText := 'Jim';
end;

toach.gif (917 バイト) 例3 HTMLテンプレートを含むHTMLファイル例

<html>
<head>
<title>TEST PAGEPRODUCER</head>
</head>

<body bgcolor=#ffffff>
<h2><font color=#ff0080>Test PageProducer</font></h2><p>
<hr>
<p>
<font size=4 color=#0040ff>
Hello <#UserName>!<p>
</font>
</body>
</html>