tw4111.pp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. { %fail }
  2. {$ifdef fpc}{$mode objfpc}{$H+}{$endif}
  3. type
  4. TPoint = record
  5. X,Y : integer;
  6. end;
  7. { TSomeUselessObject }
  8. TSomeUselessObject = class(TObject)
  9. fSomeProperty: TPoint;
  10. private
  11. function GetSomeProperty: TPoint;
  12. procedure SetSomeProperty(AValue: TPoint);
  13. public
  14. constructor Create;
  15. property SomeProperty: TPoint read GetSomeProperty write SetSomeProperty;
  16. end;
  17. { TSomeUselessObject }
  18. procedure TSomeUselessObject.SetSomeProperty(AValue: TPoint);
  19. begin
  20. fSomeProperty := AValue;
  21. end;
  22. function TSomeUselessObject.GetSomeProperty: TPoint;
  23. begin
  24. Result := fSomeProperty;
  25. end;
  26. constructor TSomeUselessObject.Create;
  27. begin
  28. fSomeProperty.X := 50;
  29. fSomeProperty.Y := 100;
  30. end;
  31. var SomeUselessObject: TSomeUselessObject;
  32. begin
  33. SomeUselessObject := TSomeUselessObject.Create;
  34. WriteLn('By Default X = ', SomeUselessObject.SomeProperty.X, ' and Y = ',
  35. SomeUselessObject.fSomeProperty.Y);
  36. SomeUselessObject.SomeProperty.X := 200;
  37. SomeUselessObject.SomeProperty.Y := 500;
  38. WriteLn('Now X = ', SomeUselessObject.SomeProperty.X, ' and Y = ',
  39. SomeUselessObject.fSomeProperty.Y);
  40. end.