Share to: share facebook share twitter share wa share telegram print page

FireMonkey

FireMonkey
Original author(s)Embarcadero Technologies (2011)
Developer(s)Embarcadero Technologies
Written inDelphi
Operating systemCross-platform (Windows, macOS, iOS, Android, Linux)
TypeGUI, RTL
LicenseCommercial proprietary license
Websitewww.embarcadero.com/products/rad-studio

FireMonkey (abbreviated FMX) is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder or Python, using Object Pascal, C++ or Python to build cross-platform applications for Windows, macOS, iOS, and Android. A third-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, Russia[1] as a next generation vector-based GUI. 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 (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[2] framework to give greater control of the look to match target platform appearances.

In 2021, FireMonkey for Python was released by Embarcadero, which was designed by Lucas Moura Belo. FireMonkey for Python is a natively compiled Python module powered by the Python4Delphi library. It gives Python developers access to the FireMonkey GUI framework and is freely redistributable. It fully supports Windows, MacOS, Linux, and Android GUI development.

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 on Windows Vista, Windows 7, Windows 8 and Windows 10, OpenGL on macOS, OpenGL ES on iOS and Android, and on Windows platforms where Direct2D is not available (Windows XP for example) it falls back to GDI+.

Applications and interfaces developed with FireMonkey are separated into two categories, HD and 3D.[2] 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[3] and the ControlType property.[4]

FireMonkey is not only a visual framework but a full software development framework, and retains many features available with VCL. The major differences are:[5]

  • 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 and form design can be used to deploy to the various platforms it supports. It natively supports 32-bit and 64-bit 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.[6] FireMonkey includes 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 technical improvements, too.

Features

Graphics

FireMonkey uses hardware acceleration when available on Windows, macOS, iOS, and Android. Direct2D or OpenGL can be used on Windows Vista, Windows 7, Windows 8 and Windows 10. On Windows platforms where Direct2D is not available (Windows XP for example) it falls back to GDI+. OpenGL is used on macOS. OpenGL ES is used on iOS and Android.

Styles

All controls in FireMonkey are styleable via the styling system. This is accomplished by attaching a 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

  1. ^ "Cross-platform development the FireMonkey way". Delphi Bistro. Retrieved 2016-10-08.
  2. ^ a b "FireMonkey - RAD Studio". docwiki.embarcadero.com. Embarcadero Technologies. Retrieved 2017-05-17.
  3. ^ Software, TMS. "TMS Software". www.tmssoftware.com. Retrieved 2017-05-17.
  4. ^ "FMX.Controls.Presentation.TPresentedControl.ControlType - RAD Studio API Documentation". docwiki.embarcadero.com. Retrieved 2017-05-17.
  5. ^ "VCL vs. FireMonkey". Podcast at Delphi.org. Retrieved 2017-07-25.
  6. ^ "FireMonkey Platform Prerequisites". docwiki.embarcadero.com. Retrieved 2020-09-05.
Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 
Kembali kehalaman sebelumnya