Delphi-Quellcode:
if (Assigned(FOnChange)) and (FNewRecord) and (Action <> cnRemoved) then // hier hast'e geprüft
begin
FNewRecord := False;
FOnChange(Self);
end;
if Action = cnRemoved then // hier nicht
begin
FOnDelete(Item); // hier haltepunkt hin und schauen was in FOnDelete steht, *1
end;
1) aber vemutlich wirklich ein "nil".
Jedenfalls sieht die
Exception danach aus, da dort zur Adresse 0 (nil) gesprungen wurde und weil dort kein ausführbarer Code steht, knallt es.
(aber natürlich kann es auch noch innerhalb einer verlinkten Methode knallen, aber da sollte der Debugger ebenfalls hilfreich sein)
Der schon genannte Trick mit dem Setter würde zmindestens zeigen, ob, wann und wo dieses Property verändert wird.