Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.358 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Interfaces in lokalen Variablen und deren Freigabe

  Alt 25. Aug 2021, 15:23
Stimmt, da hast du Recht. Ich habe es nur laufen lassen und gar nicht genauer angeschaut. Die beiden Zeilen machen in der Reihenfolge natürlich keinen Sinn:
Delphi-Quellcode:
  intf := TMyInterfacedObject.Create( TObject(list) );
  list := TStringList.Create;
Richtig wäre:
Delphi-Quellcode:
  list := TStringList.Create;
  intf := TMyInterfacedObject.Create( TObject(list) );
Ach ja... hier gibt es übrigens eine bessere Lösung für dieses Problem:
https://blog.grijjy.com/2020/08/12/c...mart-pointers/

Denn die Herangehensweise aus dem obigen Beispielprojekt macht wenig Sinn, da man so z.B. bei asynchron ausgeführten anonymen Methoden Fehler bekommt, weil das Interface eigentlich gar nichts mit dem Objekt zu tun hat. Dann ist es sinnvoller das Objekt direkt freizugeben...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (25. Aug 2021 um 15:28 Uhr)
  Mit Zitat antworten Zitat