Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Android: Seltsames verhalten von TCommonCustomForm.Hide;

  Alt 20. Feb 2019, 08:09
In einem Event-Handler oder Callback-Handler würde ich niemals die Instanz entsorgen, die diesen Event/Callback-Handler aufruft.

Das ist IMHO eigentlich Basiswissen.
Da ja blockierende Dialoge unter Android nicht erlaubt sind, gibt es eine überladene Version von Showmodal, die Funktion wird dann asynchron ausgeführt (d.h. nach Aufruf der Funktion geht die Programmausführung in der aufrufenden Prozedur direkt weiter, da wäre es dann zu früh, den Dialog wieder freizugeben).

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.

Jedenfalls hatte ich das auch so in verschiedenen Code-Schnippseln dargestellt gefunden (Stack overflow).

Aber ist wohl doch nicht ganz so unproblematisch.

Jedenfalls führt der hier beschriebene Weg führt auch zu einem ordnungsgemäßen Ergebnis:

http://docwiki.embarcadero.com/RADSt...l_Dialog_Boxes

Also gar kein DisposeOf (oder free) aufrufen, sondern im Close-Event der Form .cafree für Closeaction setzen.
  Mit Zitat antworten Zitat