Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Weak Referenzen überlegungen...

  Alt 26. Dez 2014, 23:29
Welche "Variable im Form"?

idR heisst ja nicht, dass es korrekt ist. Korrekt ist auf jeden Fall, dass Variablen (vor allem die für Instanz-Referenzen) die nicht lokal sind niemals auf einem ungültigen Wert stehen zu lassen. Selbst unter Nicht-ARC ist das schon immer der direkte Weg zu "Torte-Im-Auge" gewesen.

Ein FSomeThing.Free knallt und ist auch mit if Assigned( FSomeThing ) then nicht zu bändigen, wenn sich dort noch eine ungültige Referenz befindet. Lösen kann man das nur mit dem Setzen der Variablen auf nil und dafür wurde ja extra FreeAndNil eingeführt. Und das ist dann auch ARC-Safe.
OK - auch wenn das nicht die Frage war:

Eine lokale Variable geht i.d.R. gar nicht... Weil auf dem mobilen Gerät gibt es kein showmodal.

Aber es gibt einen Button oder ein ListElement oder was auch immer...

Darin steht:

MyForm := TMyForm.Create(Application);

Und MyForm ist aus der UMyForm.pas (Die Variable die automatisch definiert wird, wenn du ein neues Form an legst.

MyForm hat auch einen Button

In diesem Buttonclick steht.

Delphi-Quellcode:
MyForm2 := TMyForm2.Create(Application);
MyForm2.KillOldForm(Self);
Wenn Du jetzt in der KillOldForm ein FreeAndNIL aufrufst passiert überhaupt nix...
Da refcount 4 oder großer ist.

Mavarik
  Mit Zitat antworten Zitat