Ich persönlich bin ein großer Freund von Properties. Damit kann ich Getter und Setter implementieren oder auch nicht, je nachdem wonach mir grad der Sinn steht. Und später kann man alles ändern, ohne deshalb gleich den ganzen restlichen Code anpassen zu müssen. Alles ist schön gekapselt; genau im Sinne von
OOP.
Und ganz nebenbei (wie du schon sagtest), finde ich
AnObject.AValue := 7;
schöner (und vor allem leichter lesbar) als
AnObject.SetValue(7);