Einzelnen Beitrag anzeigen

axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Benötige Hilfe bei TPageProducer

  Alt 4. Sep 2014, 16:01
Für die Nachwelt...

Die Web.HTTPApp.TWebModule besitzen die Eigenschaft Web.HTTPApp.TCustomWebDispatcher.Actions _
die wiederum die Eigenschaft
Web.HTTPApp.TWebActionItem.Producer und Web.HTTPApp.TWebActionItem.ProducerContent .
Weist man dann einem der zwei im Objektinspektor den TPageProducer zu und ruft die
Web.HTTPApp.TCustomWebDispatcher.Actions wie hier unten auf:
Delphi-Quellcode:
procedure TWebModuleMain.WebModuleMainDefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  PP.HTMLFile := Request.TranslateURI('/templates/template1.html');
  Response.Content := PP.Content;
end;
kommt es zu dem von mir geschilderten Verhalten. Das oben gezeigte funktioniert nur richtig, also ohne doppelten Aufruf,
wenn im "Producer" und "ProducerContet" der Action nichts zugewiesen wurde! Falls doch, muss der Handler der Action wie folgt
aussehen:
Delphi-Quellcode:
procedure TWebModuleMain.WebModuleMainDefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.SendResponse;
end;
Vergessen darf man dann nicht, falls Templates dynamisch geladen werden sollen, die Templates z.B. im
Web.HTTPApp.TWebModule.BeforeDispatch zu laden PP.HTMLFile := 'C:\Template.html'; .
Die "BeforeDispatch" Ereignisbehandlungsroutine führt eine Vorverarbeitung durch bevor es zu der/den Action/s geht.
Mehr siehe Hilfe unter:
Zitat:
ms-help://embarcadero.rs_xe2/rad/Web_Broker_verwenden_-_Index.html

Alexander

PS: So ein Sche** ich fass es nicht
Alexander Lang
  Mit Zitat antworten Zitat