Ver Mensaje Individual
  #1  
Antiguo 13-02-2014
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 585
Reputación: 23
santiago14 Va por buen camino
Question Pasar TMemoryStream en una Property

Buenas, estoy intentando pasar datos entre formularios a través de una property, puntualmente tengo que pasar un flujo (Stream) entre ellos. La cuestión es que no doy en la tecla.

El formulario receptor
Código Delphi [-]
  TfrmDatosImprentaDigital = class(TForm)
  private  
    FpDatos_editar: TMemoryStream;
    procedure SetpDatos_editar(const Value: TMemoryStream);
    procedure SetpTitulo_edicion(const Value: string);
  public
    property pDatos_editar:TMemoryStream read FpDatos_editar write SetpDatos_editar;
    property pTitulo_edicion:string read FpTitulo_edicion write SetpTitulo_edicion;
  end;

.......

procedure TfrmDatosImprentaDigital.SetpDatos_editar(const Value: TMemoryStream);
begin
  FpDatos_editar := Value;
//Este es un RichEdit donde quiero ver los datos que llegan.
  editor.Lines.LoadFromStream(FpDatos_editar);
end;

procedure TfrmDatosImprentaDigital.btnConfirmarTextoEditadoClick(
  Sender: TObject);
var
  stream:TMemoryStream;
begin
//Aquí recuperamos el texto desde el RichEdit y lo ponemos en la property para devolverlo a quien llamó
  try
    stream:=TMemoryStream.Create;
    editor.Lines.SaveToStream(stream);
    FpDatos_editar.LoadFromStream(stream);
  finally
    stream.Free;
    ModalResult:=mrOk;
  end;
end;

En el formulario llamador
Código Delphi [-]
procedure TEditorDatos.llamar(texto_enriquecido:TRichEdit);
var
  imprenta:TfrmDatosImprentaDigital;
begin
  imprenta:=TfrmDatosImprentaDigital.Create(nil);
  with imprenta do
  begin
    self.setTexto_enriquecido(texto_enriquecido);
    //pDatos_editar.LoadFromStream(getTexto_enriquecido); //Con esto, en el destino me muestra vacío
    pDatos_editar:=Self.getTexto_enriquecido;
    if mrOk = ShowModal then
    begin
    //Recupero el texto enriquecido desde la ventana de imprenta.
      self.setTexto_enriquecido(pDatos_editar);
    //No me devuelve nada, al parecer, el Rich se muestra vacío.
      rchGobernador.Lines.LoadFromStream(self.getTexto_enriquecido);
    end;
    imprenta.Free;
  end;
end;

Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita