Ja man könnte auf sie verzichten, ich finde aber
obj.Top := 0; obj.Left := 0; obj.Width := 100; obj.Height := 100;
Besser lesbar als
obj.SetTop(0); obj.SetLeft(0); ...
Bei einer property ohne Setter/Getter wird im Kompilat, dann direkt auf die privaten Felder zugegriffen.
Später kann man dies dann einfach auf Setter/Getter umstellen ohne das der kosumierende Code geändert werden muss.
obj.Top := 0;
->
obj.FTop := 0;
In diesem Fall wird statt der Zuweisung der setter augerufen
obj.Top := 0;
->
obj.SetTop(0);
Für eine propery muss auch kein privates Feld existieren oder sie kann read oder writeonly sein
Delphi-Quellcode:
type
Klasse = class
private
FGebDat: TDate;
...
procedure CalcAlter: Integer;
public
property Alter: Integer read CalcAlter;
...
end;
...
procedure <Klasse>.CalcAlter: Integer;
begin
result := (Today-FGebdat) DIV 364; // dirty implementation
end;