Einzelnen Beitrag anzeigen

christian_r
(Gast)

n/a Beiträge
 
#6

Re: EntwZeit - Subkomponente löschen - Exception wird ausgel

  Alt 3. Mai 2008, 12:52
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.
  Mit Zitat antworten Zitat