type
TRec1 = record
name: string[12];
age: Word;
end;
TRec2 = record
name: string[12];
age: Word;
end;
var
RecA,RecB: TRec1;
RecX,RecY: TRec2;
procedure TForm1.Button1Click(Sender: TObject);
begin
{给 RecA 赋值}
RecA.name := '张三';
RecA.age := 18;
{复制 RecA 给 RecB}
RecB := RecA;
{现在 RecB 的值和 RecA 一样}
ShowMessage(RecB.name); {张三}
{修改 RecB 的值}
RecB.name := '李四';
{RecA 的值不变, 因为现在 RecA、RecB 是两个不同的数据}
ShowMessage(RecA.name); {张三}
//RecX := RecA; {这样会出错!}
{尽管 RecX 与 RecA 的内部结构完全一样, 但 Delphi 认为它们是不同的数据类型}
RecX := TRec2(RecA); {但可以强制转换}
ShowMessage(RecX.name); {张三}
RecY.name := RecB.name; {交换内部值是可以的}
RecY.age := RecA.age;
ShowMessage(RecY.name); {李四}
end;