Ver Mensaje Individual
  #1  
Antiguo 16-10-2008
chalao chalao is offline
Miembro
 
Registrado: sep 2008
Posts: 26
Reputación: 0
chalao Va por buen camino
Question Alguna forma más eficiente de enviar HTML al navegador-cliente ???

Hola foreros.

Estoy usando el componente TIdHTTPServer para enviar un formulario a un navegador y tengo el siguiente problema:
El texto HTML lo almaceno en una variable tipo string y de ahí lo inserto en un stream con WriteBuffer() para enviarlo despues con AResponseInfo.ContentStream. El problema es que si mi cadena HTML es de 1000 caracteres por ej tengo que hacer este proceso 4 veces ya que el tipo string no me permite más de 255 caracteres.
Hay alguna forma de hacerlo en un solo paso independientemente de lo largo que sea mi HTML.
Nota: Mi HTML variará en tiempo de ejecución así que almacenar el texto en un archivo y cargarlo supongo que no es una posible solución
Código:
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);

begin
  stream1 := TStringStream.Create(str);
  if ARequestInfo.Params.Count = 0 then
  begin
  str :='<html><head><title>Formulario Nombre y Apellidos</title></head>';
  stream1.WriteBuffer(str[1], length(str));
  str := '<body><form enctype="text/plain">Introduce tu nombre:<input type="text" maxlength="10" size="10" name="nombre"> Introduce tu apellido:<input type="text" maxlength="10" size="10" name="apellido"><INPUT TYPE="SUBMIT" VALUE="Enviar"></form></body></html>';
  stream1.WriteBuffer(str[1], length(str));
  AResponseInfo.ContentStream := stream1;
  end
end
Muchas gracias de antemano.
Un saludo
Responder Con Cita