Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#16

AW: interface und variable des implementierenden objekts

  Alt 20. Dez 2011, 16:06
Gut, Delphi scheint das Interface die Variable, vor Übergabe an den OUT-Parameter, freizugeben.
Ja, so muss es ja sein, es ist ja schließlich ein out-Parameter, das heißt der Aufruf entspricht einer Neuzuweisung. Also muss das alte Objekt natürlich vorher freigegeben werden.
Wenn du einen Interface-Parameter als out deklarierst, wird vor dem Aufruf der Methode ein IntfClear gemacht. Damit wird ein eventuell vorher in dem Parameter gespeichertes Interface freigegeben. Das erfolgt im der aufgerufenen Methode übergeordneten Kontext. Damit ist der out-Pramater innerhalb der Methode bereits mit nil vorbelegt, wie es auch für lokale Interface-Variablen gilt.

Ich kann da ebensowenig ein Fehlverhalten des Compilers erkennen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat