我需要此代码中的帮助
这是所有代码
请求:TIdHTTPRequestInfo
回应:TIdHTTPResponseInfo
JQuery:TResourceStream
procedure TServer.ActiveServer;
begin
DefaultPort := 8117;
Active := True;
OnCommandGet := FServerCommandGet;
JQuery := TResourceStream.Create(HInstance,'JQuery',RT_RCDATA);
end;
function TServer.FindFiles: Boolean;
var
Stream : TStream;
begin
if Request.Document = '/jquery.js' then
begin
Response.ContentType := 'application/x-javascript';
Stream := TStream.Create;
Stream.Position := 0;
Stream.CopyFrom(JQuery,JQuery.Size);
Response.ContentStream := Stream;
Result := True;
end else
Result := False;
end;
错误:TStream.Seek未实现
问题在于TStream中的TResourceStream副本
答案 0 :(得分:2)
TStream
是一个抽象类,所以它不能直接使用,你必须使用它的后代。例如TResourceStream
。
ContentStream
时不需要释放流,Indy会为你处理。
function TServer.FindFiles: Boolean;
var
Stream : TResourceStream;
begin
if Request.Document = '/jquery.js' then
begin
Response.ContentType := 'application/x-javascript';
Response.ContentStream := TResourceStream.Create(HInstance, 'JQuery', RT_RCDATA);
Result := True;
end else
begin
Result := False;
end;
end;