Ver Mensaje Individual
  #3  
Antiguo 14-02-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola santiago14.

Tal vez te sea útil crear una clase en otra unidad que incluyéndola, te permita transferir el TMemoryStream a cualquier form:
Código Delphi [-]
unit Transf_Stream;

interface

uses SysUtils,Classes;

type
  TTransferStream = class(TObject)
  private
    FStream: TMemoryStream;
    function GetStream: TMemoryStream;
    procedure SetStream(const Value: TMemoryStream);
  public
    constructor Create; reintroduce; overload;
    property DataStream: TMemoryStream read GetStream write SetStream;
    destructor Destroy; override;
  end;

var
  TrStream: TTransferStream;

implementation

constructor TTransferStream.Create;
begin
  inherited;
  FStream:= TMemoryStream.Create;
end;

function TTransferStream.GetStream: TMemoryStream;
begin
  FStream.Position:= 0;
  Result := FStream;
end;

procedure TTransferStream.SetStream(const Value: TMemoryStream);
begin
  Value.Position:= 0;
  FStream.LoadFromStream(Value);
end;

destructor TTransferStream.Destroy;
begin
  if Assigned(FStream) then 
    FStream.Free;
  inherited Destroy;
end;
end.

Un ejemplo de uso, formulario emisor:
Código Delphi [-]
...
implementation

uses Unit2 {Receptor}, Transf_Stream;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
  TransferStream := TTransferStream.Create;
  try
    RichEdit1.Lines.SaveToStream(TransferStream.DataStream);
    if not Assigned(Form2) then
      Form2:= TForm2.Create(Self);
    Form2.Show  // (o ShowModal)
  finally
    TransferStream.Free
  end;
end;

...

En los formularios receptores podrías hacer:
Código Delphi [-]
...
implementation

uses Transf_Stream;

procedure TForm2.FormCreate(Sender: TObject);
begin
  if Assigned(TransferStream) then
    RichEdit1.Lines.LoadFromStream(TransferStream.DataStream);
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita