2
0

tw24089.pp 954 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. program tw24089;
  2. { %VERSION=1.1 }
  3. {$ifdef fpc}
  4. {$mode objfpc}
  5. {$endif}
  6. {$ifdef cpujvm}
  7. uses
  8. {$ifdef java}jdk15{$else}androidr14{$endif};
  9. {$macro on}
  10. {$define writeln:=jlsystem.fout.println}
  11. {$define write:=jlsystem.fout.println}
  12. {$endif}
  13. type
  14. TRec1tw24089 = record
  15. a: integer;
  16. end;
  17. TRec2tw24089 = record
  18. i: integer;
  19. Rec1: TRec1tw24089;
  20. end;
  21. TMyClasstw24089 = class
  22. protected
  23. Data: TRec2tw24089;
  24. public
  25. procedure Test;
  26. end;
  27. procedure TMyClasstw24089.Test;
  28. var
  29. LocData: TRec2tw24089;
  30. begin
  31. {
  32. with LocData do
  33. Rec1.a := 1;
  34. writeln(LocData.Rec1.a); // success it shows 1
  35. LocData.Rec1.a := 2;
  36. writeln(LocData.Rec1.a); // success it shows 2
  37. }
  38. with Data do
  39. Rec1.a := 3;
  40. writeln(Data.Rec1.a); // !!FAIL!!, it shows 0
  41. if Data.Rec1.a <> 3 then
  42. halt(1);
  43. {
  44. Data.Rec1.a := 4;
  45. writeln(Data.Rec1.a); // success it shows 4
  46. }
  47. end;
  48. begin
  49. with TMyClasstw24089.Create do
  50. Test;
  51. end.