Utilisation du générateur de page depuis un élément d'action

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du composant générateur de page


Un exemple d'utilisation d'un composant générateur de page est d'utiliser la propriété HTMLFile pour spécifier un fichier contenant un modèle HTML. Le gestionnaire d'événement OnAction appelle la méthode Content pour convertir le modèle en séquence HTML finale :


procedure WebModule1.MyActionEventHandler(Sender: TObject; Request: TWebRequest;
   Response: TWebResponse; var Handled: Boolean);
begin
   PageProducer1.HTMLFile := 'Greeting.html';
   Response.Content := PageProducer1.Content;
end;
void __fastcall WebModule1::MyActionEventHandler(TObject *Sender,
   TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
  PageProducer1->HTMLFile = "Greeting.html";
  Response->Content = PageProducer1->Content();
}

Greeting.html est un fichier contenant ce modèle HTML :

<HTML>
<HEAD><TITLE>Notre nouveau site Web</TITLE></HEAD>
<BODY>
Hello <#UserName>!  Bienvenue sur notre site.
</BODY>
</HTML>

Le gestionnaire d'événement OnHTMLTag remplace la balise personnalisée (<#UserName>) dans le code HTML lors de l'exécution :

procedure WebModule1.PageProducer1HTMLTag(Sender : TObject;Tag: TTag;
   const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
   if CompareText(TagString,'UserName') = 0 then
      ReplaceText := TPageProducer(Sender).Dispatcher.Request.Content;
end;
void __fastcall WebModule1::HTMLTagHandler(TObject *Sender, TTag Tag,
   const AnsiString TagString, TStrings *TagParams, AnsiString &ReplaceText)
{
  if (CompareText(TagString,"UserName") == 0)
    ReplaceText = ((TPageProducer *)Sender)->Dispatcher->Request->Content;
}

Si le contenu du message de requête était la chaîne Alain, la valeur de Response.Content sera

<HTML>
<HEAD><TITLE>Notre nouveau site Web</TITLE></HEAD>
<BODY>
Bonjour Alain !  Bienvenue sur notre site.
</BODY>
</HTML>

Remarque :  Cet exemple utilise un gestionnaire d'événement OnAction pour appeler le générateur de contenu et assigner le contenu de message de réponse. Vous n'avez pas besoin d'écrire un gestionnaire d'événement OnAction si vous assignez la propriété HTMLFile du générateur de page lors de la conception. Dans ce cas, vous pouvez simplement assigner PageProducer1 comme valeur de la propriété Producer de l'élément d'action pour obtenir le même effet que le gestionnaire d'événement OnAction ci-dessus.

Voir aussi