He escrito un método de servidor DataSnap que devuelve un objeto TStream para transferir un archivo. La aplicación cliente llama al método y lee bien la secuencia. Mi problema es que la llamada al método tarda un tiempo en completarse antes de que el objeto TStream esté disponible para su lectura, pero en el lado del servidor puedo ver que la llamada al método solo lleva un segundo para crear el objeto que desea devolver. Esperaba que el objeto de transmisión se devolviera inmediatamente para poder leer la secuencia y mostrar una barra de progreso para el progreso de la descarga. ¿Hay otra forma en que puedo hacer esto?Delphi XE2 DataSnap - Descargar archivo a través de TStream con barra de progreso
El método de servidor es muy simple:
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;
posible duplicado de [ProgressBar para TResourceStream (Delphi)] (http: // stackoverflow. com/questions/6081841/progressbar-for-tresourcestream-delphi) – NGLN