Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

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

AW: Interfaces in lokalen Variablen und deren Freigabe

  Alt 25. Aug 2021, 16: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
AppCentral

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