Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#15

AW: Zur Laufzeit Comboboxen hinzufügen

  Alt 14. Feb 2020, 14:37
Seit wann ist der Parent für die Freigbae zuständig?! Das wird über den Owner gesteuert und nicht über den Parent
Leider schon immer. Ich war auch geschockt, beim Versuch zur Laufzeit eine Komponente zeitweise auf eine andere Form zu verschieben. (muß man erst den Parent abhängen und dann die Form freigeben)

Der Schuldige:
Delphi-Quellcode:
destructor TWinControl.Destroy;
begin
  ...
  I := ControlCount;
  while I <> 0 do
  begin
    Instance := Controls[I - 1];
    Remove(Instance);
    Instance.Destroy; <<<<<
    I := ControlCount;
  end;
  ...
end;
.Controls für Parent und .Components bei Owner

Logisch ist es ein reiner Fail, aber ich vermute es ist als Kackfix gedacht, für zur Laufzeit erstellte Komponenten, wo die Entwickler zu doof sind den Owner anzugeben.
Ich hätte lieber das Speicherleck, als unverständlich verschwindende Komponenten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (14. Feb 2020 um 14:41 Uhr)
  Mit Zitat antworten Zitat