value type separation



value_type_separation
Smart pascal source code
unit uMain; interface uses SmartCL.System; type TPoint = record X, Y: Integer; end; type TTest = class p1, p2: TPoint; a1, a2: array [0 .. 0] of String; procedure Test; procedure WriteLine; procedure Test2; end; implementation procedure TTest.Test; begin p1.X := 1; p1.Y := 2; p2.X := 3; p2.Y := 4; a1[0] := 'a'; a2[0] := 'b'; end; procedure TTest.Test2; var lp1, lp2: TPoint; la1, la2: array [0 .. 0] of String; begin lp1.X := 11; lp1.Y := 12; lp2.X := 13; lp2.Y := 14; la1[0] := 'la'; la2[0] := 'lb'; p1 := lp1; p2 := lp2; a1 := la1; a2 := la2; end; procedure TTest.WriteLine; begin WriteLn(p1.X); WriteLn(p1.Y); WriteLn(p2.X); WriteLn(p2.Y); WriteLn(a1[0]); WriteLn(a2[0]) end; end. //----------------- { unit1.pas } var t := TTest.Create; t.WriteLine; t.Test; t.WriteLine; t.Test2; t.WriteLine; {<<< RESULT - CONSOLE LOG >>> ----------------------------- 00 00 12 34 ab 1112 1314 lalb ----------------------------- {<<<<<<<<< THE END >>>>>>>>>}