Zitat von
pertzschc:
Zitat von
jbg:
Für lokale Variablen ist FreeAndNil z.B nicht notwendig, wenn zu einem späteren Zeitpunkt in der Funktion nicht mehr auf diese Variable zugegriffen wird.
Wie meinst Du das? Wird das .Free einer lokales Variable am Ende der Prozedur automatisch aufgerufen oder wird nur der Zeiger auf nil gesetzt?
Tritt eine Variable aus dem Scope, geht ihr Inhalt verloren. also ist es egal, ob der Pointer nun noch auf das (hoffentlich) freigegebene Objekt zeigt oder mit FreeAndNil auf nil gesetzt wurde.
Zitat von
jbg:
Zitat von
Khabarakh:
Man könnte höchstens sagen, dass bei einem Aufruf von FreeAndNil ein weiteres Free(AndNil) nicht fehlschlagen wird.
Sofern die Variable nicht aus ihrem Sichtbarkeitsbereich (scope) tritt und somit nicht mehr erreichbar ist.
Ich weiß, was du meinst, aber auf eine aus dem Scope getretene Variable lässt sich schlecht eine Prozedur anwenden
.