Go Up to GUI Application Frameworks
FireMonkey leverages the graphics processing unit (GPU) in modern desktop and mobile devices to create visually engaging applications on multiple platforms, targeting the entire range from the personal to the enterprise.
FireMonkey topics include:
- FireMonkey Quick Start Guide introduces the FireMonkey application platform with illustrations and hyperlinks to additional information.
- FireMonkey Applications Guide helps you write FireMonkey applications.
- FireMonkey Components Guide describes how to design and create components.
- FireMonkey Accessibility Package helps you create FireMonkey applications for macOS that have associated screen readers and voice-over.
- FireMonkey development for Windows, macOS, iOS, Android, and Linux
Major Features of FireMonkey
- Cross-platform abstraction layer for OS features like windows, menus, timers, and dialog boxes
- 2D and 3D graphics
- Powerful vector engine (like Adobe Flash or Microsoft WPF)
- Fast real-time anti-aliased vector graphics; resolution independent, with alpha blending and gradients
- WYSIWYG designer and property editors
- Advanced GUI engine - window, button, textbox, numberbox, memo, anglebox, list box, and more
- Advanced skinning engine based on vector graphics styles with sample style themes
- Shape primitives for 2D graphics along with a built-in set of brushes, pens, geometries, and transforms
- Advanced animations calculated in background thread; easy to use and accurate, with minimal CPU usage and automatic frame rate correction
- Bitmap effects rendered in software, including drop shadows and blurring
- Flexible layouts and compositing of shapes and other controls
- Layered forms, Unicode-enabled
- JPEG, PNG, TIFF, and GIF format read/write support
- Multi-language engine, editor and examples
- Metal drivers GPU support
VCL Is Incompatible with FireMonkey
Caution: FireMonkey (FMX) and the Visual Component Library (VCL) are not compatible and should not be used together in the same module. That is to say that a module should be exclusively one or the other, either FireMonkey or VCL. The incompatibility is caused by framework differences between FireMonkey (FMX) and VCL.
However, you can:
- Use a FireMonkey library with a VCL application, or use a VCL library with a FireMonkey application, as described in Shared Libraries for macOS.
- Read the general guidelines for converting a VCL application to FireMonkey in Migrating VCL Applications to FireMonkey.
- Read a general procedure for migrating a VCL application to FireMonkey in Migrating VCL Applications to FireMonkey.
- Obtain a VCL-to-FireMonkey converter program at http://www.midaconverter.com/.
Three major libraries are provided by RAD Studio:
- FireMonkey (FMX) is a visual component library with sophisticated graphics, animation, and styling capabilities. You can create FireMonkey applications for any supported target platform.
- Visual Component Library (VCL) is an object hierarchy of visual components that are supported on Windows only (in Win32 and Win64 applications).
- Run-Time Library (RTL) is a procedural library shared by Delphi and C++ for any supported target platform. The RTL is made up of the members of the System, System.SysUtils, System.IOUtils, and System.Classes units.
You can freely use the RTL in a FireMonkey application, but you cannot directly use the VCL in a FireMonkey application module.
- FireMonkey for Linux
- Migrating VCL Applications to FireMonkey
- FireMonkey Code Examples
- Tutorial: Using LiveBindings to Create an Application Without Code - uses FireMonkey and LiveBinding to show how to connect to a database
- Tutorial: Creating a FireMonkey 3D Application - demonstrates how to start a FireMonkey 3D application and implement 2D controls
- FireMonkey Libraries Reference
- Cross-Platform Applications
- Wizards for Creating FireMonkey Multi-Device Applications and Components
- MacOS Application Development
- iOS Mobile Application Development
- Android Mobile Application Development
- Getting Started with Windows and Mac Application Development (E-Learning Series)