Seitengeneratoren und Aktionselemente

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Seitengeneratoren einsetzen


Bei einer typischen Verwendung eines Seitengenerators wird über die Eigenschaft HTMLFile eine Datei angegeben, die eine HTML-Vorlage enthält. Die Ereignisbehandlungsroutine für OnAction ruft die Methode Content auf, um die Vorlage in die endgültige HTML-Sequenz zu konvertieren:

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();
}

Die Datei GREETING.HTML enthält die folgende HTML-Vorlage:

<HTML>
<HEAD><TITLE>Unsere neue Website</TITLE></HEAD>
<BODY>
Hallo <#UserName>!  Willkommen auf unserer Website.
</BODY>
</HTML>

Die Ereignisbehandlungsroutine für OnHTMLTag ersetzt während der Ausführung das selbstdefinierte Tag (<#UserName>) im HTML-Code:

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;
}

Wenn der Inhalt der Anforderungsbotschaft aus dem StringMr. Ed bestünde, hätte Response.Content den Wert

<HTML>
<HEAD><TITLE>Unsere neue Website</TITLE></HEAD>
<BODY>
Hallo Mr. Ed!  Willkommen auf unserer Website.
</BODY>
</HTML>

Hinweis: In diesem Beispiel wird in einer Ereignisbehandlungsroutine für OnAction der Seitengenerator aufgerufen und der Inhalt der Antwortbotschaft zugewiesen. Wenn Sie während des Entwurfs die Eigenschaft HTMLFile des Seitengenerators festlegen, müssen Sie keine OnAction-Ereignisbehandlungsroutine schreiben, sondern lediglich PageProducer1 in der Eigenschaft Producer des Aktionselements angeben. Damit erzielen Sie denselben Effekt wie mit der obigen Ereignisbehandlungsroutine.

Siehe auch