FXControls is a still-growing library of fast and reliable components for cross-platform FireMonkey software development, containing the essential elements for creating modern and user-friendly applications. The library is compatible with Delphi / C++ Builder XE8 or newer.

FXControls Goals

Perfect User Interface

Needless to say, the user interface is one of the most important parts of the application, so the user's experience (UX) often determines whether or not the user wants to use your products. Our goal is to provide you with the tools to design modern, intuitive, user-friendly and reliable user interfaces, using both well-known and proven components as well as completely new ones, including those specific to various operating systems.

Reliable FireMonkey

The FireMonkey code is not as mature as its counterpart in the VCL library, so you can find imperfections in almost every FMX component. This may be of little importance to Android users, accustomed to malfunctioning software, but it is unacceptable for business users working with financial applications. We have adopted a tactic in which the stability and reliability of the code is the most important. We have also tried to eliminate any problems that may arise from the base FireMonkey components.

Back to the Windows

FireMonkey is a multi-platform environment, but sometimes it seems that its creators have focused too much on mobile devices, slightly neglecting the desktop users. We remember that many of us still use the mouse and keyboard and we provide the correct support for these legacy devices. Of course, we also do not forget about users, who use their fingers and styluses.

FlexiLayouts

FlexiLayouts is our concept, according to which we want to enable the design of forms that look good both on mobile devices and on 4K monitors, thus saving the time needed to adapt forms to various devices. We want to accomplish this by introducing components that adapt their size to the screen and to their child controls and layouts changing their width or number of columns, similar to CSS Media Queries in HTML. Part of this idea has already been implemented in such components as TFXAutoFitLayout or TFXScollBox. The whole idea will soon be described in a separate article.

Developer-friendly Library

We have made many component and property editors to make the use of our components pleasant and convenient. Also the installation process is very easy and does not require any special effort.

What's in the Box?

TFXDataGrid

The TFXDataGrid control enables you to display and edit data from queries or database tables in a grid built of columns and rows, similar to a spreadsheet. The top features of the component are listed below.

  • High-speed performance - the grid easily handles millions of records and hundreds of columns, even on slow devices.
  • High compatibility - the grid columns can be bound to any type of database field, including BCD, lookup and calculated fields.
  • Flexible configuration - the grid layout and properties, in addition to the DFM files, can be stored in many ways using the TFXPropStorage component.
  • Compatibility with FMX styles - the grid is compatible with most standard and custom FireMonkey styles and can be customized with Style Designer.
  • Advanced database editor - users can edit, insert, append and delete records and use several data selection modes.
  • Easy data formatting - displayed values can be formatted in many ways depending on the selected cell style, also with the use of controls such as checkboxes, images or progress bars.
  • Various cell editors - a rich set of inplace editors that support all basic data types and fields, including read-only, lookup and calculated fields.
  • Data export - data can be exported to TXT, XLS, CSV, HTML, XML and RTF files or via Clipboard.
  • Data sorting - support for single and multi-column sorting with arbitrary column order.
  • Support for column dragging and sizing, header buttons, indicator column and much more.

TFXAutoFitLayout

TFXAutoFitLayout is a layout that automatically adjusts its size to the area occupied by its child controls. This allows you to optimize the space occupied by the group of child controls, regardless of the selected FMX style or font size.

TFXLabel

TFXLabel is a control used to display static text or a hyperlink in forms. The control is also often used to label another control and can set focus to that control when the user types the accelerator key.
A hyperlink can be used to perform various tasks, such as opening websites, sending e-mails or opening regular files.

TFXGroupBox

TFXGroupBox is a groupbox that can automatically adjust its size to the area occupied by its sub-controls. In addition, you can also change the position and offset of the label and change the visibility of the background (frame).

TFXControlBox

TFXControlBox is TFXGroupBox, which properties have been optimized for working with a single child control.

TFXEdit

TFXEdit is a single-line text editor with improved support for associated buttons and keyboard. It also provides the possibility to validate the text the user enters against a mask (similar to the TMaskEdit control in VCL).

TFXNumberEdit

TFXNumberEdit is an advanced numerical value editor that enables formatting, validation and editing of integer, float and decimal (BCD) values. The control allows using two separate formats for editing and displaying, controlling the precision and range of entered values, and displaying decimal and/or thousand separators.

TFXListBox

TFXListBox is a listbox in which you can use items associated with actions, thus making it easy to turn a listbox into a menu.

TFXComboEdit

TFXComboEdit is a "3-in-1" control that can replace TEdit, TComboEdit and TComboBox controls. Like every combobox, it has a searchable list that also supports custom values, images and checkboxes. The list items may be used to set the value of the control, by using their index, custom value or text.

TFXLookupComboEdit

TFXLookupComboEdit is a control similar to TFXComboEdit, but designed to handle lists containing a large number of items retrieved from the database. The list items may be used to set the value of the control, by using their index, lookup field value or text.

TFXForm

TFXForm is a FMX form extended with properties related to the help system (HelpKeyword, HelpContext, HelpType), which are missing in standard FireMonkey forms.

TFXNavigationPane

TFXNavigationPane is a two-part, collapsible panel that can be useful when creating menus or other elements of the user interface, which do not have to be permanently visible. One part of the panel is always visible, the other part can be hidden, visible or displayed as a pop-up. You can place any FMX controls on both parts of the panel. The panel is usually aligned to one of the edges of the parent window.

TFXPanel

TFXPanel is a panel that automatically adjusts its size to the area occupied by its child controls.

TFXScrollBox

TFXScrollBox is a scroll box providing better control over its contents. The content area may have variable width (within a specified range), and can be centered, or aligned to left or right.

TFXSpeedButton

TFXSpeedButton extends TSpeedButton with a drop-down menu and glyph margins.

TFXButton

TFXButton is a TButton subclass introduced to preserve future compatibility.

TFXRadioButton

TFXRadioButton is a TRadioButton subclass introduced to preserve future compatibility.

TFXHeader

TFXHeader extends THeader introducing new functionalities related to selection and sorting, allowing the use of headers to work with components that utilise multi-column selections or multi-column sorting.

TFXDateEdit

TFXDateEdit is a single-line date editor and picker derived from TScrollBox. TFXDateEdit does not extend the base class with any new functionality, but provides better support for custom styles.

TFXProgressBar

TFXProgressBar enhances the standard progress bar control by adding better support for custom styles.

TFXActiveStyleObject

TFXActiveStyleObject is a control used when designing (styling) other controls. It adds an additional image link to the TActiveStyleObject class, which allows additional visualization of the change in the state of the control, triggered by some event, e.g. MouseOver, Selected, Focused.

TFXTrayIcon

TFXTrayIcon is a component that creates an icon in the system tray and provides support for mouse clicks, menus and balloon hints. For Windows only.

TFXVirtualListView

TFXVirtualListView is a scroll box that allows you to view and manage a dynamic list of variable-height controls. The list can display any number of controls of any type. A typical example of using such a list are chats in instant messengers.

TFXPropStorage

TFXPropStorage makes it very easy to save and restore published properties of the form or its components. The selection of applicable properties is carried out using the mouse in the dialog containing a list of all available properties. Depending on the selected storage manager, component properties can be stored in various storages, such as files, memory or a database.

TFXMemStorageManager

TFXMemStorageManager is a storage manager that allows you to store component properties in the device's memory.

TFXDBStorageManager

TFXDBStorageManager is a storage manager that allows you to store component properties in database fields.

TFXIniStorageManager

TFXIniStorageManager is a storage manager that allows you to store component properties in standard ini files.

TFXRegStorageManager

TFXRegStorageManager is a storage manager that allows you to store component properties in the Windows registry.

Versions and Prices

There are currently two editions of FXControls - a free but limited Lite edition, and a standard, full edition requiring the purchase of a license. The Lite edition supports only the 32-bit Windows platform and may not contain all components included in the full version of the library.

Documentation

The library documentation is currently being developed, but you may already make use of its simplified version now.

Support

If you need assistance, have an idea for new features, want to find a solution for an error or report an error you found, you may use the issue queue. The issues queue is a part of documentation and is mix of forum and ticket system.