FireMonkey and RTL (IDE Tutorial)
As seen in previous sections, RAD Studio offers a powerful Integrated Development Environment that makes building multi-device applications extremely easy. FireMonkey offers a large number of visual and nonvisual components that can be used to build almost any desired user interface. Besides FireMonkey, RAD Studio provides an extensive library of routines and classes, called the Run Time Library (known as RTL), that provides the common functionality needed in all applications.
This topic lists the most important classes, data types, and functions that can be found both in FireMonkey and RTL.
The most important components of FireMonkey are:
- A standard set of components that include all controls that are common in all desktop platforms. This set consists of components such as buttons, edits, menus, and so on. In some of these controls, FireMonkey offers you even more functionality than is normally provided by the native versions of these controls.
- An extended set of components not normally present in desktop platform frameworks. These components are built on top of the standard set.
- Actions allow you to centralize all the interaction logic of your user interface.
- A number of data-aware controls that can be linked to a data source at design time. These components are widely used in database applications.
- FireMonkey includes built-in component based, high performance native access to MS SQL Server, Oracle, IBM DB2, MySQL, Sybase, Informix, InterBase and Firebird databases.
- Internet Direct, also known as Indy, that provides an extensive number of components used in Internet-connected applications. Indy includes client and server components for today's most used communication protocols on the Internet.
- You can use the FireMonkey application to access a wide range of database frameworks that can be used with all the data-aware controls to simplify your application development more than ever, and build distributed applications.These include DataSnap, which allows you to build distributed applications.
- FireMonkey allows you to customize the look and feel of your applications using styles, animations, image effects, and 3D.
Even though this is not the full list of components available in FireMonkey, the above mentioned are the most widely used and appreciated FireMonkey components. To see all available components, check out the Tool Palette in RAD Studio.
For more information on FireMonkey, see FireMonkey Application Platform.
The most useful features in the RTL, which are available both in Delphi and C++Builder, are:
- Extensive support for strings. This support includes handling of Unicode strings (the default encoding used by RAD Studio), ANSI and UTF-8 strings, various string handling routines, and much more.
- A large number of date and time manipulation routines.
- Extensive support for file and stream operations.
- Routines and classes that provide Windows API support. You, as a developer, are often required to use Windows API directly because a certain functionality is not provided by the RTL. RAD Studio provides developers with the ability to use the full Windows API directly. However, RAD Studio also provides classes, such as TRegistry for registry handling, that provide Windows API capabilities but are easier to use.
- Variant data types and various support routines to make COM integration easy. Variant data types have long been used in Microsoft COM and OLE technologies. Variants are useful when you do not know the exact data type you are operating on. The Delphi language compiler provides native support for Variants, integrating some of the dynamic language concepts, found in other languages such as Java, PHP, and others.
- Run-time Type Information, also known as RTTI, that provides an easy way to obtain metadata about types, classes, and interfaces at run time.
Another important part of the RTL is provided by the generic collections, which is specific to the Delphi language. This collection of generic classes can be used in any application that requires lists, dictionaries, and other container classes. There are also nongeneric counterparts for these classes.
The C++Builder equivalent of the generic collections is given by the STL library, provided by Dinkumware as a third party add-in. The next section elaborates on this.
For more information...