Hallo Shifter,
sodele auch eine kleine Lösung:
Wenn die
HTML Seite nur im Speicher liegen soll.
Das wird aber recht unübersichtlich, wenn die Seite noch mehrere Links hat.
Delphi-Quellcode:
function pageCreater:TMemoryStream;
var
sl : TStringList;
begin
result := TMemoryStream.Create;
sl := TStringList.create;
sl.add('
<html>');
sl.add('
<body>');
sl.add('
dies ist ein Test');
sl.add('
<hr>');
sl.add('
[img]./_herz.jpg[/img]');
sl.add('
</body>');
sl.add('
</html>');
sl.SaveToStream(result);
sl.free;
end;
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if ARequestInfo.Document = '
/index.html'
then
AResponseInfo.ContentStream:=pageCreater
else
AResponseInfo.ContentStream:=TFileStream.Create(ExtractFilePath(ParamStr(0))+ARequestInfo.Document,fmOpenRead);
Memo1.Lines.Add(ARequestInfo.Document);
end;
Der einfachere Weg ist daher die
html Seite auf der Platte liegen zu haben.
Delphi-Quellcode:
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentStream:=TFileStream.Create(ExtractFilePath(ParamStr(0))+ARequestInfo.Document,fmOpenRead);
Memo1.Lines.Add(ARequestInfo.Document);
end;
Das ist mit Indy9 gemacht, kann sein, dass Indy10 da etwas abweicht.
Schönen Abend noch
Klaus