title: Add setter to property in descendant class
body: <p>I have two Delphi classes.  The parent class declares a string field FSSN and matching property SSN with accessors that read and write the field directly.  In my child class I want to redeclare the property SSN to use a setter from the child class (to transform the SSN if possible before writing it to the field).</p>
  
  <p>The property SSN will be set by a method of the parent class, but (if the instance is an instance of the child class) I want the <em>child</em> setter to be called.  When I run the code, however, I never enter the child setter and the field appears to be set directly using the property declaration in the parent.</p>
  
  <p>Can this be done?</p>
  
  <p>(I realize I could accomplish this by introducing the setter procedure in the parent class and overriding in the child; I'd rather not disturb the parent class if possible).</p>
  
  <p>Here's what I have so far (in a drastically simplified version, of course):</p>
  
  <pre><code>TCustomPerson = class(TObject)
    protected
      FSSN: String;
    public
      procedure LoadFromXML(ANode: IXMLNode);
      property SSN: String read FSSN write FSSN;
  
  TMyPerson = class(TCustomPerson)
    protected
      procedure SetSSN(ASSN: String);
    public
      property SSN: String read FSSN write SetSSN; // &lt;=== Setter introduced.
  
   procedure TCustomPerson.LoadFromXML(ANode: IXMLNode);
   var ThisSSN: String;
   begin
      //extract SSN from XML into ThisSSN
      SSN := ThisSSN;                             // Expect to invoke SetSSN.
   end
  
  procedure TMyPerson.SetSSN(ASSN: String);
  begin
      FSSN := ValidateSSN(ASSN);                  // &lt;== Breakpoint here never reached.
  end
  </code></pre>