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)) <> '
.HTML'
then 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.