Delphi FMX Samples are a collection of demo projects provided by Embarcadero (and the community) to illustrate the capabilities of the FireMonkey (FMX) framework. FMX is Delphi’s cross-platform GUI library for creating native applications on:
The samples showcase UI controls, graphics, animations, 3D, sensors, gestures, multi-touch, hardware integration, and backend services.
Do not call platform services (e.g., TLocationSensor) directly from a background thread. Samples that use TTask or TThread.Queue are safe. delphi fmx samples
// Swipe to rotate 3D item carousel
procedure OnGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean);
Embarcadero releases new FMX features with every version:
To stay current, you need themed samples that target the latest API levels. Subscribe to the Embarcadero GitHub repository and follow FMX experts on LinkedIn (e.g., Jim McKeeth, Marco Cantù, Ian Barker). Windows (64-bit, 32-bit) macOS iOS Android Linux (limited,
Also, explore Skia4Delphi samples – a separate library that replaces FMX's default canvas with Skia (Google's 2D graphics library). The Skia samples are excellent for custom UI rendering.
Delphi FMX is a set of libraries and tools for building cross-platform applications using the Delphi programming language. It provides a unified way to create GUI applications, leveraging the power of the Delphi language and the FireMonkey framework. The samples showcase UI controls, graphics, animations, 3D,
Embarcadero has significantly improved its sample offerings. Here is your treasure map:
// Animated particle system reacting to audio
TParticleEmitter = class
procedure EmitParticle(Intensity: Single);
procedure UpdateParticles(DeltaTime: Double);
end;
FMX uses a flexible layout system based on TAlign, TLayout, TGridPanelLayout, and TScaleLayout. Key samples to explore:
| Sample Name | What It Teaches |
|-------------|------------------|
| CustomListBox | Creating dynamic, styled list items |
| MasterDetailDetail | Multi-level navigation on mobile |
| TabControlTransitions | Animated swiping between tabs |
| AdaptiveLayout | Changing UI orientation and size at runtime |
Code highlight – Adding a search filter to a TListView (excerpt from official sample):
procedure TForm1.SearchEditChangeTracking(Sender: TObject);
begin
TListView(SearchHandle).Items.Filter :=
function (Item: TListViewItem): Boolean
begin
Result := ContainsText(Item.Text, SearchEdit.Text);
end;
end;