FireMonkey
   HOME

TheInfoList



OR:

FireMonkey (abbreviated FMX) is a cross-platform GUI framework developed by
Embarcadero Technologies Embarcadero Technologies, Inc. is an American computer software company that develops, manufactures, licenses, and supports products and services related to software through several product divisions. It was founded in 1993, went public in 2000, ...
for use in
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracle ...
or
C++Builder C++Builder is a rapid application development (RAD) environment, originally developed by Borland and owned by Embarcadero Technologies (a subsidiary of Idera Software, Idera), for writing programs in the C++ programming language currently targeti ...
, using
Object Pascal Object Pascal is an extension to the programming language Pascal (programming language), Pascal that provides object-oriented programming (OOP) features such as Class (computer programming), classes and Method (computer programming), methods. ...
or
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
to build cross platform applications for
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
,
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
, and Android. A 3rd party library
FMX Linux
enables the building of FireMonkey applications on Linux.


History

FireMonkey is based on VGScene, which was designed by Eugene Kryukov of KSDev from
Ulan-Ude Ulan-Ude (; bua, Улаан-Үдэ, , ; russian: Улан-Удэ, p=ʊˈlan ʊˈdɛ; mn, Улаан-Үд, , ) is the capital city of the Republic of Buryatia, Russia, located about southeast of Lake Baikal on the Uda River at its confluence wi ...
, Russia as a next generation vector-based
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
. In 2011, VGScene was sold to the American company Embarcadero Technologies. Kryukov continued to be involved in the development of FireMonkey. Along with the traditional Windows only
Visual Component Library The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal. History The VCL was developed by Borland for use i ...
(VCL), the cross-platform FireMonkey framework is included as part of Delphi, C++Builder and RAD Studio since version XE2. FireMonkey started out as a vector based UI framework, but evolved to be a bitmap or raster based UI framework to give greater control of the look to match target platform appearances.


Overview

FireMonkey is a cross-platform UI framework, and allows developers to create user interfaces that run on Windows, macOS, iOS and Android. It is written to use the GPU where possible, and applications take advantage of the hardware acceleration features available in
Direct2D Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008 (with Platform Update i ...
on
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
,
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearly ...
,
Windows 8 Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012; it was subsequently made available for downl ...
and
Windows 10 Windows 10 is a major release of Microsoft's Windows NT operating system. It is the direct successor to Windows 8.1, which was released nearly two years earlier. It was released to manufacturing on July 15, 2015, and later to retail on J ...
,
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
on macOS,
OpenGL ES OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accel ...
on iOS and Android, and on Windows platforms where Direct2D is not available (
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
for example) it falls back to
GDI+ The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. Windows apps use Windows API to interact with G ...
. Applications and interfaces developed with FireMonkey are separated into two categories, ''HD'' and ''3D''. An HD application is a traditional two-dimensional interface; that is, UI elements on the screen. It is referred to as HD because FireMonkey utilizes multi-resolution bitmaps in its dynamic style system to take advantage of high-DPI displays. The second type, a 3D interface, provides a 3D scene environment useful for developing visualisations. The two can be freely mixed, with 2D elements (normal UI controls such as buttons) in a 3D scene, either as an overlay or in the 3D space, and 3D scenes integrated into the normal 2D "HD" interface. The framework has inbuilt support for effects (such as blurs and glows, as well as others) and animation, allowing modern WPF-style fluid interfaces to be easily built. It also supports native themes, so that a FireMonkey application can look very close to native on each platform. Native controls can be used on Windows, macOS, iOS and Android through both third-party libraries and the ControlType property. FireMonkey is not only a visual framework but a full software development framework, and retains many features available with VCL. The major differences are: * Cross-platform compatibility * Any visual component can be a child of any other visual component, allowing for creation of ''hybrid'' components * Built-in styling support (now also available in VCL) * Use of Single precision floating point numbers for position, etc. instead of integers. * Support for GPU shader based visual effects (such as ''Glow'', ''Inner Glow'', ''Blur'' for example) and animation of visual components Due to the framework being cross-platform compatible, the same
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
and form design can be used to deploy to the various platforms it supports. It natively supports
32-bit In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculation ...
and
64-bit In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
executables on Windows, 32-bit executables on macOS, 32-bit and 64-bit executables on iOS, and 32-bit and 64-bit executables on Android. FireMonkey include
platform services
that adapt the user interface to the correct behavior and appearance on each target platform. Since its introduction in XE2, there have been numerous improvements in many areas of the framework and it is being actively developed and improved. For example, macOS development is integrated tightly into the IDE, requiring a Mac only for deployment. Numerous components such as sensors, touch and GPS have been added, especially useful for those developing mobile apps. There have been significant performance and underlying tech improvements, too.


Features


Graphics

FireMonkey uses hardware acceleration when available on Windows, macOS, iOS, and Android.
Direct2D Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008 (with Platform Update i ...
or
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
can be used on
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
,
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearly ...
,
Windows 8 Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012; it was subsequently made available for downl ...
and
Windows 10 Windows 10 is a major release of Microsoft's Windows NT operating system. It is the direct successor to Windows 8.1, which was released nearly two years earlier. It was released to manufacturing on July 15, 2015, and later to retail on J ...
. On Windows platforms where Direct2D is not available (
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
for example) it falls back to
GDI+ The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. Windows apps use Windows API to interact with G ...
.
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
is used on macOS.
OpenGL ES OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accel ...
is used on iOS and Android.


Styles

All controls in FireMonkey are styleable via the styling system. This is accomplished by attaching
TStyleBook
to the form, and a style is loaded and applied to the form. On some platforms certain controls can also be set to use a OS provided control implementation in contrast to the self drawn Firemonkey version. This sometimes adds further features while removing some features provided by Firemonkey's own implementation.


Platform Services

In addition to visual components, FireMonkey provides a loosely coupled way of accessing platform specific features independent of the platform. This also shows up as platform default behaviors. For example the TabPosition of the TTabControl has a property value of ''PlatformDefault'' that moves the tabs to the top on Android and the bottom on iOS automatically to be in line with the design guidelines for those platforms.


References

{{Pascal programming language family Computer libraries Graphical user interfaces Pascal (programming language) libraries Pascal (programming language) software