Скопируйте ResourceStream в поток
Мне нужна помощь в этом коде
Это весь код
Запрос: 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 не реализован
Проблема в копии TResourceStream в TStream
1 ответ
TStream
является абстрактным классом, поэтому его нельзя использовать напрямую, вы должны использовать тот, который является его потомком. TResourceStream
например.
PS: я вижу, что вы имеете дело с Indy, нет необходимости освобождать поток при назначении 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;