The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 4,262 other subscribers

android – How to release a Firemonkey control properly, in this case a child form with a parent? – Stack Overflow

Posted by jpluimers on 2019/01/02

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 uses TThread.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 use Queue 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?

I’ve been using TFormStand to have a single form and load frames dynamically, but have some AV in the stept when changing frames…. –

R Gosp – Google+

–jeroen

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.