Skip to content

FMXERDeclarative UIs for FireMonkey

Build Delphi FMX screens the way Flutter does — by composing small, reusable elements in code. Named routes, a scaffold, layout containers and ready-made elements, all on top of TFrameStand.

FMXER

What is FMXER? ​

FMXER is a small visual framework for Embarcadero Delphi FireMonkey (FMX), inspired by Google Flutter: instead of designing every screen in the form designer, you compose screens in code out of reusable elements — frames and forms — and let FMXER create, place, show and free them for you.

pascal
uses FMXER.Navigator, FMXER.ScaffoldForm, FMXER.ColumnForm, FMXER.TextFrame, FMXER.ButtonFrame;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Navigator(FormStand1)
    .DefineRoute<TScaffoldForm>('home'
    , procedure (Home: TScaffoldForm)
      begin
        Home
        .SetTitle('Hello, FMXER!')
        .SetContentAsForm<TColumnForm>(
          procedure (Col: TColumnForm)
          begin
            Col
            .AddFrame<TTextFrame>(50
            , procedure (Text: TTextFrame)
              begin
                Text.SetContent('A screen composed in code');
              end
            )
            .AddFrame<TButtonFrame>(60
            , procedure (Button: TButtonFrame)
              begin
                Button
                .SetText('Say hello')
                .SetOnClickHandler(
                  procedure
                  begin
                    Home.ShowSnackBar('Hello!', 2000);
                  end
                );
              end
            );
          end
        );
      end
    );

  Navigator.RouteTo('home');
end;

FMXER is built on TFrameStand and TFormStand: every element is shown through a stand, so transitions and visual effects come from a TStyleBook, not from code.

Where to go next ​

  • New here? Read the introduction, then build your first app.
  • Looking for a ready-made element? Browse the catalog.
  • Want to see it running? The demos go from a "Hello, World" to a QR code reader with the camera.

Released under the Mozilla Public License 2.0.