unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}function ComponentToString(Component: TComponent): string;
var
  BinStream: TMemoryStream;
  StrStream: TStringStream;
  s: string;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(Component);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result := StrStream.DataString;
    finally
      StrStream.Free;
    end;
  finally
    BinStream.Free
  end;
end; { ComponentToString }function StringToComponent(Value: string; Instance: TComponent): TComponent;
var
  StrStream: TStringStream;
  BinStream: TMemoryStream;
begin
  StrStream := TStringStream.Create(Value);
  try
    BinStream := TMemoryStream.Create;
    try
      ObjectTextToBinary(StrStream, BinStream);
      BinStream.Seek(0, soFromBeginning);
      Result := BinStream.ReadComponent(Instance);
    finally
      BinStream.Free;
    end;
  finally
    StrStream.Free;
  end;
end; { StringToComponent }procedure TForm1.Button1Click(Sender: TObject);
const
  cFormText =
'object Form1: TForm1'#13#10 +
'  Caption = ''没你想的这么简单'''#13#10 +
'  object Panel1: TPanel'#13#10 +
'    Left = 48'#13#10 +
'    Top = 88'#13#10 +
'    Width = 185'#13#10 +
'    Height = 41'#13#10 +
'    Caption = ''Panel1'''#13#10 +
'    TabOrder = 1'#13#10 +
'  end'#13#10 +
'end'#13#10;
begin
  RegisterClasses([TPanel]);
  StringToComponent(cFormText, Self);
  UnRegisterClasses([TPanel]);
end;end.