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;

posted on 2008-01-09 13:33  万一  阅读(4009)  评论(5编辑  收藏  举报