Классы / Свойства

type
  TSquare = class
  private
    FSide: Double;
    function GetArea: Double;
    procedure SetArea(const Value: Double);
  public
    property Side: Double
      read FSide write FSide;
    //computed property: getter and setter
    property Area: Double
      read GetArea write SetArea;
  end;

function TSquare.GetAreaDouble;
begin
  Result := FSide * FSide;
end;

procedure TSquare.SetArea(const Value: Double);
begin
  FSide := Sqrt(Value);
end;

var
  Square: TSquare;
begin
  Square := TSquare.Create;
  Square.Side := 2;
  //square.Area is 4
  WriteLn('area is ', Square.Area:0:0);

  Square.Area := 9;
  //square.Side is 3
  WriteLn('side is ', Square.Side:0:0);
end.