52 lines
765 B
Plaintext
52 lines
765 B
Plaintext
program DeepCopyApp;
|
|
|
|
{$APPTYPE CONSOLE}
|
|
|
|
uses
|
|
System.TypInfo;
|
|
|
|
type
|
|
TTypeA = record
|
|
value1: integer;
|
|
value2: char;
|
|
value3: string[10];
|
|
value4: Boolean;
|
|
function DeepCopy: TTypeA;
|
|
end;
|
|
|
|
{ TTypeA }
|
|
|
|
function TTypeA.DeepCopy: TTypeA;
|
|
begin
|
|
CopyRecord(@result, @self, TypeInfo(TTypeA));
|
|
end;
|
|
|
|
var
|
|
a, b: TTypeA;
|
|
|
|
begin
|
|
a.value1 := 10;
|
|
a.value2 := 'A';
|
|
a.value3 := 'OK';
|
|
a.value4 := True;
|
|
|
|
b := a.DeepCopy;
|
|
a.value1 := 20;
|
|
a.value2 := 'B';
|
|
a.value3 := 'NOK';
|
|
a.value4 := False;
|
|
|
|
Writeln('Value of "a":');
|
|
Writeln(a.value1);
|
|
Writeln(a.value2);
|
|
Writeln(a.value3);
|
|
Writeln(a.value4);
|
|
|
|
Writeln(#10'Value of "b":');
|
|
Writeln(b.value1);
|
|
Writeln(b.value2);
|
|
Writeln(b.value3);
|
|
Writeln(b.value4);
|
|
readln;
|
|
end.
|