Delphi XE2 DataSnap - Baixar arquivo via TStream With Progress Bar
Eu escrevi um método de servidor DataSnap que retorna um objeto TStream para transferir um arquivo. O aplicativo cliente chama o método e lê bem o fluxo. Meu problema é que a chamada do método demora um pouco para ser concluída antes que o objeto TStream esteja disponível para leitura, mas no lado do servidor posso ver que a chamada do método leva apenas um segundo para criar o objeto a ser retornado. Eu esperava que o objeto do fluxo fosse retornado imediatamente para que eu pudesse ler o fluxo e exibir uma barra de progresso para o progresso do download. Existe outra maneira de fazer isso?
O método do servidor é muito simples:
function TServerMethods.DespatchDocument(sCompanyID, sDocOurRef: string): TStream;
var
sSourceFilePath: string;
strFileStream: TFileStream;
begin
sSourceFilePath := GetDocumentPDFFilePath(sCompanyID, sDocOurRef);
strFileStream := TFileStream.Create(sSourceFilePath, fmOpenRead);
Result := strFileStream;
end;