Zusätzlich zu dem oben genannten, kannst du den Zugriff auf Properties genauer steuern, da du Funktionen/Prozeduren für das Lesen und Schreiben einer Property hinterlegen kannst.
Beispiel:
Delphi-Quellcode:
Type
TTest = Class
private
fname : string;
protected
Procedure SetName(const value:string);
function GetName:string;
public
published
Property Name: string read GetName write SetName;
end;
Implementation
Procedure TTest.SetName(const value:string);
begin
if (copy(value,1,2) = 'XX') then
fname := value;
end;
function TTest.GetName:string;
begin
result := copy(fname,3);
end;
In dem Beispiel wird der Wert von Property Name nur gesetzt, wenn der zu setzende Wert mit 'XX' anfängt.
Beim lesenden Zugriff werden die ersten beiden Zeichen weggelassen.
Zugegeben ist das Beispiel nicht sehr sinnvoll, aber sollte die vorgehensweise demonstrieren.
Sinnvolle Anwendungen gibts haufenweise (Prüfungen beim Setzten, Abhängigkeiten verschiedener Properites untereinander....).