views:

72

answers:

1

I'm reading a component from a stream, and want to be able to specify the Owner property.

  var TComponent : comp;

  stream.Seek(0, soFromBeginning);
  comp := stream.ReadComponent(nil);

Who owns comp, and how can I change it? I'd hoped the parameter to readComponent would be the owner, but it seems to do something totally different!

+4  A: 

@Roddy, you can use the InsertComponent procedure for set the owner of an component.

check this sample

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream : TFileStream;
  Comp   : TComponent;
begin
  Stream := TFileStream.Create('Myfiile', fmOpenRead);
  try
    Comp := Stream.ReadComponent(nil);
    if Comp <> nil then
        InsertComponent(Comp);   //this make the form the owner of the component
  finally
    Stream.Free;
  end;
end;
RRUZ
Perfect, Thanks!
Roddy