Ñuño, recuerda tambien:
Código Delphi
[-]
var a, b:TStringList;
begin
a := TStringlist.create;
a.add('uno');
a.add('dos');
b:= TStringlist.create;
b.Assign(a);
Para clonar objetos está el método Assign, pero pertenece a TPersistent y puede que incluya muchas cosas que no quieras. Además debes modificar el método Assign en tu clase para que sea 100 % operativo, total, como he soltado un rollo ahí vá lo que deberías hacer:
Código Delphi
[-]
procedure TSecuencia.Assign(Avalue:TSecuencia);
begin
Numero := Avalue.Numero
Nombre := Avalue..Nombre;
Descripcion := Avalue.Descripcion;
Recorr.Origen := Avalue.Recorr.Origen
SetLength(Recorr.tradmov, Avalue.Recorr.Count);
for i:= 0 to Avalue.Recorr.Count -1 do Recorr.tradmov[i] := Avalue.Recorr.tradmov[i];
Y ahora si podemos usar un código como...
Código Delphi
[-]
var a, b: TSecuencia;
begin
a := TSecuencia.create;
b := TSecuencia.Create;
a.Nombre := 'pepe';
b.Assign(a);
"b" será un clon de "a"
Esto que has visto es realmente lo que hace el método TPersistent.Assign(), pero es más lioso de entender por la herencia (la primera vez que vi el código de Assign no entendí nada de nada).
Edito:
como me quedé intrigado hice la prueba,
Delphi si clona los registros con el operador ":="
Código Delphi
[-]
type tu = record
nombre :string;
end ;
var a,b:tu;
procedure TForm1.FormCreate(Sender: TObject);
begin
a.nombre := 'pepe';
b:= a;
a.nombre := 'juan';
ShowMessage('a.nombre es ' a.nombre + ' b.nombre es '+ b.nombre)
end;
obtenemos el mensaje "a.nombre es juan b.nombre es pepe"