Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: TIdHTTPServer : HTML Dokument vor dem versenden bearbeit

  Alt 23. Jul 2005, 23:08
Folgende Situation: Man packe einen WebBrowser auf eine Form und gleichzeitig noch einen TIdHTTPServer dazu. Der WebBrowser wird dann also der "Requester" sein und der läd nun seine Seite von diesem TIdHTTPServer auf der gleichen Form, und zwar bei einem Click auf Button1. Das HTML-Document beinhaltet dabei neben irgendeinem Text noch ein Bild. Was passiert also nun im IdHTTPServer1? Es kommen dort insgesamt 2 Anfragen an. Nämlich die erste nach dem eigentlichen HTML-Document, hier mal z.B. 'FAQsHTML0.HTML' genannt, und danach die zweite nach eben diesem Bild darauf!

Wenn du den Beispiel-Code unten mal selbst ausprobieren willst, dann sollte in deinem HTML-Code bezüglich des Bildes noch ungefähr so etwas drinstehen:



Delphi-Quellcode:
procedure TFAQ_Form.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var htmlfile : TStringList;

function doFilename : string;
begin
  result := ExtractFilePath(ParamStr(0)) + copy(ARequestInfo.Document,2,256);
end;

begin
  if UpperCase(extractFileExt(ARequestInfo.Document)) <> '.HTMLthen begin
    AResponseInfo.ContentStream := TFileStream.Create(doFilename,fmOpenRead);
  end
  else begin
    htmlfile := TStringList.Create;
    try
      htmlfile.LoadFromFile(doFilename);
      // <-- HTML-Code modifizieren -->
      AResponseInfo.ContentText := htmlfile.Text;
    finally
      htmlfile.Free;
    end;
  end;
end;


procedure TFAQ_Form.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://127.0.0.1/FAQsHTML0.HTML');
end;
Habe's noch schnell gecheckt und bei mir funzte es.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat