Danke Philip für den Tip.
Zum besseren Verständnis schaue ich mir erst mal die geerbte Methode von TComponent an, damit ich weiß, was ich da überhaupt mache. So tief bin ich bisher nie in die Delphi-OO-Materie eingestiegen.
Delphi-Quellcode:
procedure TComponent.Notification(AComponent: TComponent;
Operation: TOperation);
var
I: Integer;
begin
if (Operation = opRemove)
and (AComponent <>
nil)
then
RemoveFreeNotification(AComponent);
if FComponents <>
nil then
begin
I := FComponents.Count - 1;
while I >= 0
do
begin
TComponent(FComponents[I]).Notification(AComponent, Operation);
Dec(I);
if I >= FComponents.Count
then
I := FComponents.Count - 1;
end;
end;
end;
Wenn ich die ComboBox meiner Komponente zuweise, dann wird doch aber nicht wirklich der Owner der ComboBox neu zugewiesen? Dieser wurde ja bereits beim Drop auf das Formular zugewiesen. Das würde bedeuten, dass TDkComponent.Components nicht verändert wird.
Wenn ich "Notification" richtig deute, bezieht es sich doch aber auf das Löschen einer Komponente aus der Eigenschaft "Components". Wird diese nicht nur für Komponenten verwendet, deren Eigenschaft Owner auf eben jenes TComponent-Objekt referenziert?
Außerdem verstehe ich nicht ganz, warum Components in Notification komplett rekursiv freigegeben wird.
Entschuldigt bitte, wenn ich jetzt hier im Forum im Grundwissen rumstocher.
Möglich, das ich Dinge falsch verstehe.