Einzelnen Beitrag anzeigen

Schokohase

Registriert seit: 17. Apr 2018
716 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Android: Seltsames verhalten von TCommonCustomForm.Hide;

  Alt 20. Feb 2019, 09:31
Insofern erschien es mir durchaus denkbar, dass per "DisposeOf" (welches ja quasi ein Refcount unter den Mobilen Plattformen ist) der Aufruf auch innerhalb der anonymen Prozedur erlaubt ist, da die tatsächliche Freigabe erst erfolgt, wenn keine Bezüge mehr bestehen.
Da wirfst du aber einiges durcheinander.

Wenn keine Bezüge mehr bestehen, dann wird unter ARC die Instanz freigegeben. Das ist richtig. Kann man damit vergleichen, dass der Korb mit Inhalt entsorgt wird, wenn keiner mehr den Korb kennt.

Wenn man DisposeOf aufruft, dann wird der Inhalt des Korbs entsorgt aber nicht der Korb selber. Aber woher weißt du das der Inhalt nicht mehr benötigt wird, wenn der Callback (von dem Korb) aufgerufen wird? Eben, kannst du nicht wissen also solltest du den Korb-Inhalt auch in Ruhe lassen.

Es ist wie gesagt ganz einfach:
In Event-Handlern oder Callback-Handlern wird niemals die aufrufende Instanz freigegeben oder disposed.

Hält man sich nicht daran, dann bekommt man dieses Verhalten. Wenn es trotzdem funktionieren sollte, dann ist das nicht Können, sondern Glück.

Du könntest natürlich auch das Problem beschreiben, was du mit diesem DisposeOf lösen möchtest, dann könnten wir dir dafür eine Lösung vorschlagen.
  Mit Zitat antworten Zitat