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.
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.
这样一来在你的程序中,这个对象就和名字或者下标建立联系
create someobject
astringlist.addobject(name/alias,someobject)astringlist.object[i].somemethed can do-sth