Im Beitrag 7, siehst Du im Anhang, wie der Setter von FOnDelete arbeitet. Ebenfalls im gleichen Beitrag hatte ich geschrieben, dass ein Assigned(FOnDelete) immer False ergibt.
Ich habe noch ein bisschen weiter getestet. Wenn ich die TCustomObjectList<T: class> für die Klasse TDegree folgendermaßen erstelle :
Delphi-Quellcode:
DegreeList := TCustomObjectList<TDegree>.Create;
DegreeList.OnDelete := TableEntryDelete;
Funktioneren beide Quelltexte aus den Beiträgen 1 und 7 und die Funktion für FOnDelete wird ausgeführt. Lasse ich diese Zeile
DegreeList.OnDelete := TableEntryDelete;
weg, dann wird FOnDelete nichtmehr ausgeführt oder es wird die
Access Violation angezeigt, wenn die Abfrage auf Assigned(FOnDelete) fehlt. Deshalb gehe ich davon aus, das das FOnDelete im Notify auf das FOnDelete in der TCustomObjectList<T: class> zeigt.
Ich stelle mir jetzt nur die Frage, warum FOnChange so funktioniert und FOnDelete nicht ?