Du musst den neuen Wert der privaten Feld-Variable zuweisen und nicht wieder dem property selbst, sonst kommst du in eine Endlosschleife, da sich die Set-Methode indirekt immer wieder selbst aufruft!
Delphi-Quellcode:
procedure TTest.SetArt(Value: TArt);
begin
if Value <> Nummer then
begin
// ÄNDERUNG
FNummer := Value;
end;
end;