For my archive as [Archive.is] TFmxObject.Release
is deprecated since Delphi 10.2 Tokyo, and – worse – broken on some platforms: [WayBack] android – How to release a Firemonkey control properly, in this case a child form with a parent? – Stack Overflow
TFmxObject.Release
usesTThread.ForceQueue
internally, and that’s currently broken under Android (see discussion above).As a workaround, a working cross-platform version for releasing an object from its event handler would be
procedure TForm.CloseBtnClick(Sender: TObject); begin Parent := nil; TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(nil, procedure begin Self.DisposeOf; end); end).Start; end;
Instead of
Synchronize
you can also useQueue
in above method.What is important to keep in mind is that you should not keep any other references to the control you are releasing or you may hit the trouble down the road.
Via:
[WayBack] What are the solutions for a wizard like application (a single form with content changed depending on some action) in Firemonkey?
–jeroen