You are on page 1of 71

Embarcadero Delphi

and the State


of Windows
Development

An Idera, Inc. Company

By David Intersimone “David I”

1 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Table of Contents
1 Introduction 6
2 State of Windows Development 8
3 Why Delphi? 10
3.1 Before Delphi 10
3.2 Delphi 1 and 2 11
3.3 Delphi 3 to 10 12
3.4 Delphi Continues to Evolve 13

4 Types of Windows Application Projects 16


5 Comparison of Tools for Windows Development 18
5.1 Embarcadero Delphi 18
5.2 Microsoft Visual Studio 19
5.3 JetBrains IntelliJ IDEA 19
5.4 Eclipse IDE 19
5.5 Microsoft Xamarin 20
5.6 Visual Studio Code 20
5.7 Tool Comparison Matrix 20

6 Key Delphi Features and Benefits for Windows Developers 24


6.1 FireDAC 25
6.2 Visual Live Bindings 27
6.3 Visual Two Way Tools 28
6.4 Styles and Themes 29
6.5 Windows API and WinRT Units 31
6.6 Parallel Programming Library (PPL) 31
6.7 Windows 10 Components, High DPI and Multi-Monitor support 32
6.7.1 Components for Windows 10 32
6.7.2 High DPI support on Windows 10 33
6.7.3 Multiple Display Support for VCL and FMX 33
6.8 RAD Server 34
6.9 App Tethering 35
6.10 Bluetooth, Beacons, Beacon Fencing and IoT 36
6.11 InterBase 40
6.12 Enterprise Connectors 40

2 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
7 Delphi Code Productivity and Performance 40
7.1 Productivity 41
7.2 Performance 44

8 Additional Features, Benefits and Resources 46


8.1 Cross platform 46
8.2 Virtualizing and Deploying Delphi Applications 46
8.2.1 Cybele Software Thinfinity® VirtualUI 46
8.2.2 Amazon AppStream 2.0 47
8.2.3 The IDE’s Deployment Manager 47
8.2.4 Third Party Installation Tools 48
8.2.5 Submitting Applications to an Online Store 48
8.3 Technology Partner Ecosystem 49
8.4 Education – Learn, Get Help, Find Code 51
8.4.1 LearnDelphi.org 51
8.4.2 Embarcadero Academy 51
8.4.3 Developer Skill Sprints 52
8.4.4 Webinar Replays and other Videos on YouTube 52
8.4.5 How-To Videos 52
8.4.6 Embarcadero Developers Blog 52
8.4.7 Embarcadero on Social Media 52
8.4.8 Built With Delphi 53
8.4.9 Code Examples, Tutorials and Samples 53
8.4.10 RAD Studio IDE Tools API 53
8.4.11 GetIt Package Manager 54
8.4.12 GitHub Repositories for Delphi 54
8.4.13 Answers on StackOverflow 55
8.4.14 Platform Status Page 55

9 Videos for Windows 10 and VCL 57


9.1 Modernizing Apps for Windows 10 57
9.2 Delphi IDE Features and Productivity 57

3 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
10 25 years of Delphi Innovations 59
Delphi 1 - February 15, 1995 59
Delphi 2 - February 10, 1996 59
Delphi 3 - August 5, 1997 60
Delphi 4 - June 17, 1998 60
Delphi 5 - August 10, 1999 60
Delphi 6 - May 21, 2001 60
Delphi 7 - August 9, 2002 61
Delphi 8 - December 22, 2003 61
Delphi 2005 - October 12, 2004 61
Delphi 2006 - November 23, 2005 61
Delphi 2007 - March 16, 2007 62
Delphi 2009 - August 25, 2008 63
Delphi 2010 - August 15, 2009 63
Delphi XE - August 30, 2010 63
Delphi XE2 - September 2, 2011 64
Delphi XE3 - September 3, 2012 64
Delphi XE4 - April 22, 2013 64
Delphi XE5 - September 11, 2013 65
Delphi XE6 - April 15, 2014 65
Delphi XE7 - September 2, 2014 65
Delphi XE8 - April 7, 2015 66
Delphi 10 Seattle - August 31, 2015 66
Delphi 10.1 Berlin - April 20, 2016 67
Delphi 10.2 Tokyo – March 22, 2017 67
Delphi 10.3 Rio - November 21, 2018 67
Delphi 10.3.1 Rio - February 14, 2019 68
Delphi 10.3.2 Rio - July 18, 2019 68
Delphi 10.3.3 Rio - November 21, 2019 68

About the Author 70

4 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Introduction
1 Introduction
Microsoft Windows is still the leading operating system for
desktop computing according to multiple industry analyst reports
and many computer use tracking companies. The January 2020
StatCounter.com report shows that Microsoft Windows has a
77.7% desktop operating system market share. Since Windows’
introduction, millions of applications have been built by
developers using different development tools and programming
languages. This white paper is for developers experienced
with any language or tool for Windows development, including
previous and current versions of Delphi, as well as developers new
to Windows development.

6 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
State of Windows
Development
2 State of Windows Development
I first saw an early preview of Windows 1 at a meeting with Bill Gates when I was
working for Softsel Computer Products (now Merisel). The early demo showed
applications opening up in unused areas of the screen and looked tiled (versus
overlapping windows on the Xerox Star, Apple Lisa and Macintosh). I questioned
the tiled approach to the product manager and Bill Gates snapped back at me
and told me that each application was running in a Window!

With the release of Windows


1 and 2, developers were still
mostly building applications for
DOS and a text console. IBM was
working with Microsoft to create
a GUI based operating system
replacement for DOS called OS/2.
As OS/2 was rolling out, Microsoft
continued work on Windows and
released Windows 3.0 which, in
my opinion, was the first “usable”
version of windows for developers.
Early development was done
using C, Pascal, Basic and other
languages to create applications
that called direct into the Windows API. Some developers will remember the 100
lines of C code required to create a simple Windows application.

With the advent of object-oriented languages like C++, Object Pascal, Actor
and others, the next wave of Windows application development started to
make Windows programming simpler. While most developers still directly
used the Windows API, there emerged new class and component libraries that
encapsulated the API providing a higher abstraction layer and support for
multiple releases of Windows.

As Windows on the desktop became more popular, developers had to


struggle with the challenge of supporting several versions of Windows in their
applications. As time went on Microsoft started to officially end support for
older versions of Windows. Most recently Microsoft “officially” ended support for
Windows 7 release on January 14, 2020. Still, developers have to support several
popular Windows releases including Windows 7, 8.x and 10.

StatCounter.com has a chart that shows the desktop Windows version market
share worldwide and how it has changed over the last eleven years (January 2009
to January 2020).
This chart shows that Windows 7 and Windows 10 are still the top two most popular
releases being used.

8 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Why Delphi?
3 Why Delphi?
Developers have a range of choices for the platforms, development tools, programming languages,
libraries, architectures, etc. they use to build applications. Why should a developer use Delphi? What
types of applications can they build? Will they be able to meet the requirements and schedules of a
demanding user and customer? Let’s take a quick look at some of the innovations and key features
that show how developers can successful in responding to business needs, customer demands and
stay on the cutting edge of software engineering and state-of-the-art technologies using Delphi.

3.1 Before Delphi


Before Delphi was released the non-object and object oriented programming languages were
used to create a wide range of Windows applications. At Embarcadero, development tools
and libraries provided the following migration of support for DOS and Windows application
development, moving from direct use of operating system APIs to class libraries:
• Turbo Pascal for DOS with Turbo Vision
• Turbo Pascal for Windows with Object Windows Library (OWL)

While these development solutions increased the productivity for developers, a next generation
of technology and implementation was needed to accelerate the success of Microsoft
Windows. The solution was to combine visual programming, compiler technology and database
programming in a seamless development experience to rapidly advance the state of the art in
Windows application development.

10 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
3.2 Delphi 1 and 2
On February 14, 1995 at the Software Development Conference at the
Moscone Convention Center in San Francisco, Delphi 1 was unveiled to an
audience of more than 2,000 developers and PC industry experts. Anders
Heilsberg, Delphi’s chief architect, demonstrated that evening and received a
standing ovation from those in attendance.

Anders Heilsberg said: “Delphi is the first product that combines visual
programming, compiler technology and database programming in one box.
The pervasive undercurrent in Delphi is one of openness and extensibility. For
example, when we added the ability to have experts in Delphi, we didn’t just
add a certain set of prefabricated experts, we also gave you a way to install
your own experts, we gave you a way to install your own templates instead
of just including a few standard ones. Basically, Delphi was designed from
the ground up to be portable to 32-bits. Your source code will port with no
changes, we’ve already verified that in house. We’re constantly looking for
new and emerging technologies to embrace, for example, OLE2, OCX controls,
and all of the new APIs that are available in Windows 95 will be included in
Delphi. The exciting thing about this product is that it is fun to use. We truly
enjoy using the product ourselves. We built the product in itself, which also
means that throughout the two years we worked on this product, we ran into
all of the problems that you would have otherwise run into and we’ve actually
solved those problems. And today, its just amazing how quickly you can
put together a professional looking application just by plunking down a few
controls on a form and writing a couple of lines of code and your off!”

11 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 1 was released supporting Windows 3 16-bit API, an IDE, 16-bit native
code compiler, Visual Component Library (VCL) that provided native code
objects for Windows GUI interfaces, integrated debugging, local database
access and SQL database Client/Server support via a common set of
components via the Borland Database Engine (BDE).

Using the IDE developers could drag and drop visual and non-visual
components onto a form, set some of the component properties using the
object inspector, and select component events to write additional code for
algorithms and business logic. Everything a developer could do in the IDE with
components and properties could also be done using code. An application’s
UI design appears in the form definition visually and also in text mode, and
modifying either view to evolve the application. In the IDE developers could,
for the first time, see live data at design time for the connections to local
databases (Paradox and dBase for example) and a wide variety of client server
SQL databases.
As Delphi 1 was being developed, Microsoft was working on the next release
of Windows. As mentioned in the quote above, the Delphi team was testing 16
and 32 bit Windows technology support at the same time to ensure that code
written for 16-bit Windows could also be compiled for 32-bit Windows with
no changes required. I demonstrated a prerelease version of Delphi 2 at the
Windows 95 launch on Microsoft’s campus lawn.

The VCL has continued to evolve to support subsequent releases of Windows


while preserving the component based architecture and developer’s code
investments.

3.3 Delphi 3 to 10
Delphi 3 and 4 added new language features, multi-tier development, and
support for Windows 98. Language features added include interfaces, method
overloading, dynamic arrays and component packages.

Delphi 5, 6, 7 introduced Internet and Web functionality, added frames, XML


support, SOAP web services, UML and WindowsXP support.

Delphi 2005 to 2010 added function inlining, for..in, generics, anonymous


methods, attributes, touch/gestures, multi-unit name spaces, operator
overloading, static methods/properties, numerous code editor enhancements,
the FastMM memory manager, Unicode support, and more for Windows.

Delphi XE to XE8 added cross platform development (Windows, macOS, iOS


and Android) with FireMonkey (FMX), FireDAC, REST support, Live Bindings,
Styles, App Tethering, Cloud/BaaS support, Parallel Programming Library (PPL),
RAD Server, etc.

12 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 10.0 to 10.3 added support for inline variable declaration, type inferencing, a
wide range of new Windows 10 features, FireDAC support for MongoDB, Bluetooth
Classic and LE, Beacons, IoT components Windows 10 styles, new 64-bit platforms
support (macOS, iOS, Android, Linux), Windows High-DPI support, RAD Server
enhancements, and more.

3.4 Delphi Continues to Evolve


Delphi and the VCL have continued to evolve to support new features and changes
in the Windows operating system and APIs. Delphi has also leveraged many of the
same capabilities for additional non-Windows platforms including iOS, macOS,

Android and Linux. Delphi’s Object Pascal language has continued to


advance along with the RAD Studio IDE, SQL and no-SQL database
support, new architectures (web, cloud, multi-tier and micro services)
architectures, Bluetooth, IoT devices, and more.

Delphi also includes FireMonkey (FMX) component library editions for


building cross platform GUI applications for Win32, Win64, macOS, iOS,
Android and Linux. All source code is provided for the VCL, FMX, and run-
time libraries to help developers understand how the components and
libraries are built and also as the ultimate source of documentation.

One repeat question that developers have asked over the years is, “Which

13 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
component library should I use, VCL or FMX?” The answer depends
on what applications a developer is going to build today for a target
operating system and where development is going in the future. If the
application is only going to target Windows then VCL would be the best
choice. If an application needs to support Windows, macOS and mobile
devices today or in the near future then FMX be the best choice.

Jim McKeeth said it well in his blog post: “Use VCL when you are only
targeting Windows and don’t need the 3D, effects or flexibility of
FireMonkey. Use FireMonkey when you are going multi-platform, or you
want to use some of FireMonkey’s flexibility especially when working
around graphics. Both frameworks will be around for a long time. As
you use them both you will get a better feel for which to use in each
situation.” If an application is built with VCL and needs to be migrated to
FMX, check out the Mida Converter technology partner tool that converts
VCL applications to FMX.

A list of the key features and innovations added to each release of Delphi is
included at the end of this white paper. Plans for future enhancements are
available in the online RAD Studio public road map.

14 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Types of Windows
Application Projects
4 Types of Windows
Application Projects
Windows development tools usually provide
a range of templates and wizards that
help developers set up a starting Windows
application project. Windows project types
include:
• GUI applications
• Console applications
• Service applications
• Server applications – Web, SOAP and REST
• Cloud applications
• Control Panel applications
• Dynamic Libraries (DLLs)
• ActiveX Libraries
• Packages
• Static Libraries
• Unit Tests

To support Windows 10, development tools


need to provide technology integration with
the Windows API, COM, WinRT, and APPX
application models.

16 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Comparison of Tools for
Windows Development
5 Comparison of Tools for Windows Development
There are multiple tools for building Windows applications. Some of these tools are complete
integrated development environments supporting multiple programming languages. Some
developers also use programming editors and build systems that work with command line compiler
interfaces to create applications. Delphi also provides command line compilers for integration with
editors and build systems. Some of the following tools generate native code applications for Windows.
Others compile source code to an intermediate format or interpret the code at run time using Just in
Time compilers.

Most of the development tools support integrated debugging, team development, automated testing,
refactoring, deployment, code code analysis, code metrics, profiling and more. Some tools support
development on multiple platforms including Windows, macOS, iOS and Android and provide access
to native APIs on each platform, frameworks that sit on top of the APIs, and reuse of some of all of the
code on the supported platforms.

When comparing cross platform tools developers will want to explore how each tool makes a
distinction between platform native (usually related to UI and OS interfaces) and native machine code
(compiled for each platform’s processor).

Here is a quick list of some of the popular developer tools that provide support for building Windows
applications. Note that some of the supported languages, for example JavaScript/Type Script, are best
used for building web based applications that will run in a browser or browser container on Windows.

5.1 Embarcadero Delphi


Delphi is available separately and is also available as part of the RAD Studio development
suite that supports the Delphi (Object Pascal) and C++Builder (C++) programming languages.
Developers can visually design and build console, GUI desktop, client server and multi-tier project
types for Windows using the VCL component and run time libraries. Both Delphi and C++Builder
can also use same source code to build cross platform, natively compiled applications using the
FireMonkey (FMX) component and run time libraries for Windows, macOS, iOS and Android.
Delphi can also be used to build console, desktop and server native code applications targeting
64-bit Linux on Intel processors.
Delphi is available in four editions:

• Delphi Community (free) – All the features of professional but licensed for non-professional
and hobbists
• Delphi Professional – Mobile, desktop and local database access
• Delphi Enterprise – Remote database, client server, and multi-tier solutions, also introduces
the Linux platform
• Delphi Architect – Bundled with other tools suitable for an architect.

Product home page – https://www.embarcadero.com/products/delphi/

18 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
5.2 Microsoft Visual Studio
Visual Studio assists building Windows applications using the C++, C#, Visual Basic, JavaScript/
Type Script, Python, F# programming languages. A native code compiler is provided only for the
C++ programming language. The main focus for Visual Studio is building console, desktop and
server applications using Windows APIs and frameworks including C++’s MFC and WinForms. The
C# language also supports building cross platform applications for Windows, iOS and Android
using. .NET and WinForms/Xamarin Forms with interfaces to platform native APIs.

Visual Studio editions (https://visualstudio.microsoft.com/vs/compare/) include:


• Visual Studio Community (free)
• Visual Studio Professional
• Visual Studio Enterprise
Product home page – https://visualstudio.microsoft.com/

5.3 JetBrains IntelliJ IDEA


IntelliJ IDEA supports building applications using the Java, Kotlin, JavaScript/Type Script, Scala,
Groovy, C/C++ (https://www.jetbrains.com/cpp/) and other programming languages for building
desktop, server, web and cross platform applications. IntelliJ IDEA is primarily an IDE for Java
development. The IDE also knows about the syntax of additional languages. Java, Kotlin, Scala
and Groovy create applications that use JVMs that are available on multiple platforms. The
IDE implements the same Android coding and integrated tool set that is available in Google’s
Android Studio.

IntelliJ IDEA editions (https://www.jetbrains.com/idea/features/editions_comparison_matrix.html):


• IntelliJ IDEA Community Edition – for JVM and Android development
• IntelliJ IDEA Ultimate – for web and enterprise development
Product home page – https://www.jetbrains.com/idea/

5.4 Eclipse IDE


This open source integrated development environment from the Eclipse Foundation supports
multiple programming languages including Java, C++, FORTRAN, and JavaScript. The Eclipse
IDE has an open API to allow integrations of development tools, build tools, libraries, etc. From
its beginnings, the primary use of Eclipse is building Java applications for client side and server
side applications wherever a JVM and Java run time exists. The C++ and FORTRAN language
integrations have improved over time providing native code compilers and debuggers for
application development.
Product home page – https://www.eclipse.org/eclipseide/

19 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
5.5 Microsoft Xamarin
Xamarin is an open source cross platform development tool using C# and the
open source. .NET platform. Xamarin builds on the .NET development platform
providing tools and libraries for building Windows, Android, iOS, macOS, tvOS
and watchOS applications. To build cross platform applications developers
can use shared C# program/business logic, shared C# user interface code and
platform specific C# code. Microsoft/Xamarin states that at least 75% of the C#
code can be shared across platforms. Xamarin.Forms GUI applications can be
built for iOS, Android and Windows 10 Universal Platform.
Product home page
https://dotnet.microsoft.com/apps/xamarin

5.6 Visual Studio Code


Visual Studio Code is an open source programmers environment supporting
C++, C#, Python and other languages. Visual Studio Code provides a multi-
platform IDE that can run on Windows, macOS and Linux. Development is
focused on the programmers editor, build and debugging environment. Open
source contributors can also create visual designers for specific programming
languages and platforms.
Product home page – https://code.visualstudio.com/

5.7 Tool Comparison Matrix


This table summarizes and compares features of the Windows development tools
listed above. Developers should check each product’s feature matrix for additional
details and latest release information.

Feature/ RAD Visual IntelliJ Eclipse Xamarin VS Code


Tool Studio Studio IDEA

Editions Architect, Enterprise, Ultimate, Free (open Free (open Free (open
Enterprise, Professional, Community source) source) source)
Professional, Community (Free)
Community (Free)
(Free)

Development IDE IDE IDE IDE IDE Source Code


Environment Editor

Windows Win32, Win64 Win32, Win64 JVM JVM .NET Various


Project Targets

Languages Object Pascal, C++, C#, VB, Java, Kotlin, Java, C++, C# C++, C#,
C++ TypeScript/ JavaScript/ Fortran, and Python, Java,
JavaScrpt, TypeScript, JavaScript, etc. Go, Rust, VB,
Python, F# Scala, Groovy,
C/C++, Ruby,
etc.

20 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Feature/ RAD Visual IntelliJ Eclipse Xamarin VS Code
Tool Studio Studio IDEA
Native Machine Y (Object Y (C++) Y (C++) Y (C++ and .NET Byte Y (C++)
Code Compilers Pascal and Fortran) Code
C++)

Windows UI Y C++ (MFC) N N N N


Framework and
Components

Cross Y C# (Xamarin N N N N
platform UI Forms)
Framework and
Components

Integrated Y N N Window Y IDE API for


Visual UI Builder Pro designers
Designer plug-in

Components Y N N N N N
for desktop.
SQL and NoSQL
databases

Build Web IIS and Apache IIS, Azure App Apache Apache IIS, ASP. Plug-ins for
Server Service Tomcat, Tomcat NET Apache and
Applications WebLogic, Jetty
WebSphere

Cloud Azure, AWS Azure Cloud Foundry, Cloud Azure Azure


Integration Google Foundry,
App Engine, AWS, Apache
OpenShift,
AWS

Component Y Y Y Y .NET Core Y


and Run Time
Library Source
Code

Team Subversion, Subversion, Subversion, Subversion, Subversion, Subversion,


Development Mercurial, Git Mercurial, Mercurial, Git, Mercurial, Git Mercurial, Git Mercurial, Git
Git, VS Team Perforce, Team
Services (VSTS) Foundation
Server (plug-in)

Static Code Y Y Y Y Plug-ins Plug-ins


Analysis and
Code Metrics

Integrated Unit Y Y Y Y Y Plug-ins


Testing

21 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Feature/ RAD Visual IntelliJ Eclipse Xamarin VS Code
Tool Studio Studio IDEA
Component Y Y Y Y .NET Core Y
and Run Time
Library Source
Code

Team Subversion, Subversion, Subversion, Subversion, Subversion, Subversion,


Development Mercurial, Git Mercurial, Mercurial, Git, Mercurial, Git Mercurial, Git Mercurial, Git
Git, VS Team Perforce, Team
Services (VSTS) Foundation
Server (plug-in)

Static Code Y Y Y Y Plug-ins Plug-ins


Analysis and
Code Metrics

Integrated Unit Y Y Y Y Y Plug-ins


Testing

Component Y Y Y Y .NET Core Y


and Run Time
Library Source
Code

Team Subversion, Subversion, Subversion, Subversion, Subversion, Subversion,


Development Mercurial, Git Mercurial, Mercurial, Git, Mercurial, Git Mercurial, Git Mercurial, Git
Git, VS Team Perforce, Team
Services (VSTS) Foundation
Server (plug-in)

Static Code Y Y Y Y Plug-ins Plug-ins


Analysis and
Code Metrics

Integrated Unit Y Y Y Y Y Plug-ins


Testing

Localized IDE English, French, English, French, N N N Plug-in


German, German, language
Japanese Chinese, packs
Japanese,
Czech, Italian,
Korean, Polish,
Portuguese
(Brazil),
Russian,
Spanish

Turnkey RAD Server Azure Service Micronaut, Plug-ins .NET N


Microservices Fabric, .NET Quarkus, and Microservices
Framework Microservices Helidon

22 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Key Delphi Features and Benefits
for Windows Developers
6 Key Delphi Features and Benefits for Windows Developers
From the beginning, Delphi’s focus has been to provide the best component based visual development
environment supporting native machine code compilation, database access and the wide range of APIs
and technologies available for the Windows platform. This section will cover a few of the key features
and benefits that make Delphi a top rated Windows developer solution. Developers can find a complete
feature matrix covering Delphi and C++Builder on the Embarcadero site.

Delphi provides 32-bit and 64-bit optimizing compilers and tool chains that support multiple releases
of Windows including Windows 7,8.x and 10. Source code compatibility allows the same Delphi code
to be reused across multiple Windows versions and Intel processor releases to support their users.
The Visual Component
Library (VCL) and Non-
Visual components
support multiple versions
of Windows and work
with 32-bit and 64-bit
processors. Component
based development allows
developers to create visual
interfaces, database access,
architectures and other
business logic by setting
properties and writing
as little code as possible.
Components can be used at
design time and created at
run time. Properties can be
set at design and run time.
Components can extended
via inheritance and new
components can be created
from base classes. There
is also a large ecosystem
providing additional
components and tools that
are available for free and
purchase to fulfill most
business and application
requirements.
Delphi provides numerous
components for user
interface and Windows
system features.

24 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Developers can also
download and install
additional components
using the GetIt Package
Manager in the IDE:

Additional information
about the VCL can be found on the Embarcadero DocWiki at
http://docwiki.embarcadero.com/RADStudio/en/Introducing_the_Visual_Component_Library_(VCL)

6.1 FireDAC
FireDAC includes a set of data access components for developing Windows and multi-device
database applications for Delphi. FireDAC enables native high-speed direct access from Delphi
to InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access,
Firebird, Informix, MongoDB and more.
FireDAC has a flexible, powerful, and extendable architecture as illustrated in the diagram below.

25 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Using the same source code and components developers can access general and specific
features of all databases (directly or via bridging drivers) that are supported by FireDAC.
FireDAC also includes components for working with MongoDB No-SQL databases. FireDAC
also provides debugging and performance monitoring interfaces, which allow monitoring
and tracing interactions between the application and the connected databases.
FireDAC benefits include:
• FireDAC is the fruit of 10 years of experience in developing real-world database
applications.
• FireDAC enables the developer to concentrate on developing the application, not on
the complexities of database interaction.
• FireDAC provides a modern feature-rich set of components to address all major RDBMS
environments.
• FireDAC uses one set of components to address all supported RDBMS types.
• FireDAC reduces the Total Cost of Ownership by providing:
- Less initial cost, compared to separate expensive libraries.
- Less time required to learn and become familiar with the unique powerful libraries.
- Straight-ahead application design and development when targeting different
databases.
FireDAC Components include:

26 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
6.2 Visual Live Bindings
LiveBindings, an expression-based framework, is a data-binding feature supported by the VCL
and FireMonkey frameworks. LiveBindings is based on relational expressions, called binding
expressions, that can be either unidirectional or bidirectional. By means of binding expressions,
any object can be bound to any other object, simply by defining a binding expression involving
one or more properties of the objects to be bound together.

For example, a developer can bind a TEdit control to a TLabel so that, when the text changes
in the edit box, the caption of the label is automatically adjusted to the value evaluated by the
binding expression. Another example is binding a track bar control to a progress bar so that
the progress rises or lowers as the user moves the track bar. In the same manner, data set fields
can be connected to objects, one or more properties of different objects can be altered, and so
on. Because LiveBindings propagate, a developer can even alter properties of objects that are
connected to other objects that are bound to a control object.

The Live Bindings Designer


speeds up development by
visually connecting component
properties and data together
without having to write any code.
Live bindings can also be used to
generate prototype data before
the connection is made to a real
database (perhaps the database
team has not implemented
the database design when
development is started). Live
bindings can then easily replace
the prototype data with real data
with one mouse click.

As a LiveBindings Designer view


grows, the design window can be
zoomed in and out and an image
of current LiveBindings can be
saved. The visual elements in the
LiveBindings window can also be
hidden with a right-mouse click.
Layers can be created for subsets of
objects in the LiveBindings window
to better organize and hide sets of
bound elements. Tools | Options
support for the LiveBindings
Designer to allows for the showing
and hiding of certain components
from the visual design view.

27 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
For additional information, check out the “Using LiveBinding in VCL
Applications” tutorial online at
http://docwiki.embarcadero.com/RADStudio/en/Tutorial:_Using_
LiveBinding_in_VCL_Applications

6.3 Visual Two Way Tools


The IDE’s Form Designer allows developers to visually build
native Windows applications, with live snap-to hints and layout
guidelines. The Form Designers visual two way tools capability
speeds development of a Windows application’s UI and facilitates
writing less code using components, properties and events.

Changes can be made to the application’s UI using the object


inspector. Changes can also be made n a text mode version of
each form (the text is a representation of the form’s stream of
component, property and event settings). Changes made in source
code are also reflected in the form, components, properties and
events.
The bitmap below shows a no-code, customer and sales
master detail completed application in the Form Designer with
LiveBindings and database data live at design time.

28 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
The right mouse button
can be used in the form
designer to change the
view to “form as text”.
Make any changes to
property settings (for
example, change the SQL
query and form caption)
and then switch back to
form design to see the
resulting form.

The included Object Inspector allows developers to rapidly set component properties and events.
QuickEdit designers are provided in the form designer with additional items in the designer
menu, and a new pane is provided for editing common control properties faster that in earlier
Delphi releases.

Developers can also use visual form inheritance and form linking to reduce coding and simplify
maintenance. Frames are also provided to build and reuse compound components. Delphi also
provides an Object Repository for storing and reusing forms, Data Modules, an experts.
Just as live database data can be seen in the form designer, the results of REST service calls can
be seen at design time. These features can save development and debugging time by showing
data that doesn’t fit in UI components, errors in SQL statements, problems with the database
architecture, and REST service connections.

6.4 Styles and Themes


The Windows operating system has provided a standard set of themes since Windows 98 that
users can choose to define the default look and feel for the desktop and applications. VCL and
FMX UI components can also be styled to match the Windows look and feel for Windows 10 and
the Metropolis set. And, in FMX there are also default styles for each supported multi-device
target platform. Developers can also create styles of their own to customize their applications.

Delphi includes a default set of styles that can be selected using the Project | Options |
Appearance dialog. Code can also be written to select styles at run time.

There are also a set of premium styles available for download via the GetIt Package Manager.

29 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
For VCL, developers can create
custom styles with the VCL Style
Designer. VCL also includes
support for styling common
dialogs, the TWebBrowser
component and styling support
for TGrid descendants. A style
permits developers to change
the appearance of every part and
state of a control. VCL controls
are made up of parts and states.
A VCL style consists of a set of
values for each of these parts
and states. For instance, a scroll
bar has the following parts:
frame, slider, and the two side
buttons for each direction. The
side buttons, for example, have
the following states: pressed,

disabled, hot, and normal.


In FireMonkey, each control
class has a default style, hard-
coded per target platform.
A copy of the internal hard-
coded style for a control class
is created the Edit Default
Style command is clicked on
the control’s popup menu.
The TStyleBook component
contains the information
about the default or custom
style. Developers can use the
FireMonkey Style Designer
window to edit the default
style or create a new style. The
style information is stored in
a TStyleBook component. In
the Style Designer Window’s
Structure pane, a developer can select the component of the control to change. Do the needed
edits, save them, and close the view. Now the StyleBook that was initially created contains all of
the changes. To see the edits, double-click on the StyleContainer.

30 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
6.5 Windows API and WinRT Units
Delphi includes the run time library source code that contains wrapper units for
the Windows APIs and also the WinRT APIs. While most developers will use the
components to access properties, methods and events for Windows operations,
there will be times in code where there might be a need to call down directly
into the Windows APIs.
The source code for all unis is available in the following installation directories:
• C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\win
• C:\Program Files (x86)\Embarcadero\Studio\20.0\source\rtl\win\winrt
(note: 20.0 is the designation for 10.3 Rio release. For an earlier Delphi release the
folder path will have a lower number)

6.6 Parallel Programming Library (PPL)


Included in RTL is the Parallel Programming Library (PPL), providing
developers the ability to have tasks running in parallel. The PPL includes a
number of advanced features for running tasks, joining tasks, waiting on
groups of tasks, etc. to process. PPL includes a thread pool that self tunes
automatically (based on CPU load) avoiding the need care about creating or
managing threads.
Developers can use PPL by including System.Threading unit in applications.
This unit is made up of several features that can be included into new and
existing projects. The unit also includes a number of overloaded arguments
to make it suitable for C++ as well as Delphi. The PPL works on Windows (32
and 64-bit), macOS, Android, and iOS devices.

Using the PPL, application code can easily:


• Make looping faster with TParallel.For.
Tutorial: Using the For Loop from the Parallel Programming Library
• Run multiple tasks in parallel using TTask and Itask.
Tutorial: Using Tasks from the Parallel Programming Library
• Leave a process running, focus on other tasks and then get the result of that
process at the desired point. IFuture lets the application establish a priority for
the running code blocks and still return the results when needed.
Tutorial: Using Futures from the Parallel Programming Library

Included with Delphi are VCL and FMX sample applications that implement a
parallelized version of Conways Game of Life.

For additional information and tutorials go to the online Embarcadero


DocWiki at
http://docwiki.embarcadero.com/RADStudio/en/Using_the_Parallel_
Programming_Library

31 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
6.7 Windows 10 Components, High DPI and Multi-Monitor support
Delphi continues evolve to support the latest releases of Windows with support for new Windows
10 features. Here are a few of the important Delphi features provided to ensure that applications
look great on Windows 10 and support new operating system features.

6.7.1 Components for Windows 10


In the component palette developers will find multiple Windows 10 components that will
also work on Windows 7 and 8.x.

The TWindowsStore component


connects a Windows application with
the Windows Store and provides
features including getting a list of apps
owned by the user, available add-ons,
purchased add-ons, and to support
trial mode apps. The TWindowsStore
component is supported for Windows
platforms only and includes a VCL
version and a FireMonkey version.
The TNotificationCenter component
can be used to manage multi-device
notifications. An application can
use the notification center to send
messages to inform the user. Using
notifications, messages are displayed
in the designated notification
area for each supported platform.
Notifications can be used on Windows using VCL and FMX.
The TNotificationCenter component works on Windows 8.x, 10,
macOS, iOS and Android.
The TSharingContract allows an application to share content with another Windows
application using the functionality of a Sharing Contract. Delphi implements the Share
Contract API that allows a developer to set up an application as a sharing source.
The shared target has to be a native Windows application. The implementation of
Sharing Contract functionality supports using the TSharingContract component or by
implementing a TCustomSharingContract component. TSharingContract component
properties include:

• The DataTitle and Description specify the title and the description for the title that
appears in the sidebar.
• ImageFile allows a developer to specify an image to share. Developers may also
provide a custom event handler for the OnTransferImage event, which lets the
application pass any stream to the target application.
• Other properties allow for the sharing of much more information with the target
application. See the Windows Dev Center – Guidelines for sharing content and Windows
Dev Center - DataPackage class for more information about the sharing contract.

32 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
6.7.2 High DPI support on Windows 10
Jim McKeeth, Marco Cantu and David Millington have written blog posts about High DPI
support for VCL apps on Windows 10. In his post, Jim said: “When you have a High DPI (>96
DPI) monitor, Windows applies a scale factor so that instead of your content getting really
small and hard to read, instead it makes the fonts sharper and the images more detailed. The
VCL automatically handles most of
the resizing for you, but there is a
new function in the VCL.Classes unit
called GetSystemMetricsForWindow
that takes advantage of the new
GetSystemMetricsForDPI API (with
fallback to the old GetSystemMetrics).
It will give you metrics, resolution, and
DPI for each window of your app, with
understanding based on the monitor it
currently appears on.”

High DPI support is included in Delphi version 10.3 Rio with enhancements to:
• Image List and Image Collection support
• Per Monitor V2 support (use the Project | Options | Application | Manifest page)
• New Styles that support High DPI
• Updated Windows APIs for High DPI

See additional information on the blog posts at:


• https://community.idera.com/developer-tools/b/blog/posts/high-dpi-on-windows-10
• https://community.idera.com/developer-tools/b/blog/posts/windows-10-and-modern-high-dpi-
display-support-in-delphi-and-c-builder

6.7.3 Multiple Display Support for VCL and FMX


VCL provides a way to handle multiple monitors. A global variable Screen (of type TScreen)
is created when a project is started. Screen encapsulates the state of the screen on which an
application is running. Common tasks performed by Screen include:
• Handling the list and parameters of multiple monitors accessible by the application.
• The size of the window in which the application is running.
• A list of fonts available to the screen device.
• The look of the cursor.

33 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
If the VCL application runs on multiple monitors, VCL effectively manages the layout of the
application’s user interface on multiple monitors. For instance, menus, dialog boxes, and other
pop-up controls open on the same monitor as the parent form. Use the Screen variable to obtain
a list of monitors and their dimensions. The Monitors property provides an access to all monitors
used to comprise the desktop, and MonitorCount returns the number of monitors. All coordinates
are relative to the primary monitor.
FMX automatically supports running an application on multiple displays. Developers do not need
to implement any programming to support running a FireMonkey application of multiple displays.
FireMonkey effectively manages the layout of the application’s user interface on multiple displays.
For example, menus, dialog boxes, and other pop-up controls open on the same display as the
parent form. Multi-display support in the FireMonkey framework is similar to multi-monitor
support in VCL applications. The TScreen class defines methods and properties providing access
to parameters of multiple displays. The application automatically creates a global Screen variable,
of type TScreen. Screen encapsulates the state of the screen on which the application is running.
Use Screen to obtain:
• A list of displays (used to comprise the desktop)
• Coordinates, dimensions, and other properties of these displays

The DisplayCount property returns the number of displays and Displays provides an access to
properties of all displays. All coordinates are virtual screen coordinates. Virtual screen coordinates
are relative to the primary display and measured in pixels. The virtual screen is the bounding
rectangle of all displays used to comprise the desktop.

6.8 RAD Server


Embarcadero’s RAD
Server provides a turn-
key application foundation
for rapidly building and
deploying services-based
applications using RAD Studio,
Delphi and C++Builder.
RAD Server supports the
REST (Representational State
Transfer) architectural style
with JSON (or XML) parameter
passing and return results.
Developers can publish APIs,
manage users and devices
that are connected to the RAD Server, capture analytics about the use and users of applications,
connect to local and enterprise databases using the FireDAC components and connect with
Internet of Things (IoT) devices. RAD Server also supports user authentication, push notifications,
geolocation, and data storage.

34 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
With RAD Server’s wizards,
components, and tools developers
can quickly create new middleware
and back-end applications or migrate
existing Delphi and C++Builder client/
server applications to a RAD Server
based application to run on a server or
in the cloud. Developers can publish
endpoints for REST calls from desktop,
mobile, console, web and other types
of applications. RAD Server comes
with a full set of tools, components,
database connectivity and interfaces
that developers can leverage in
building service applications.

RAD Server applications can be deployed on Microsoft Windows IIS and Apache web servers.
Developers can also deploy Delphi-based services to Linux Intel 64-bit servers. RAD Server also is
provided as a Docker container for easy deployment.

Additional RAD Server information is available:


• The Complete Guide to RAD Server eBook –
http://altd.embarcadero.com/releases/studio/general/The%20Complete%20Guide%20to%20
RAD%20Server%20eBook.pdf
• RAD Server Webinar Replay –
https://www.youtube.com/watch?v=eCyTiDq_jBY
• RAD Server Embarcadero Academy Course for Delphi –
https://www.embarcaderoacademy.com/courses/author/226326
• RAD Server Docker Deployment –
http://docwiki.embarcadero.com/RADStudio/Rio/en/RAD_Server_Docker_Deployment

6.9 App Tethering


The RTL provides app tethering components, giving applications the ability to interact with other
applications running either on the same machine or on a remote machine. Using app tethering,
applications can easily:
• Discover other applications that are using app tethering, running either on the same device or
on other connected devices.
• Run actions remotely. An application can publish actions using app tethering. Then other
applications can remotely invoke any of these actions on the former application.
• Share data between applications for standard data types and streams.

35 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
The app tethering feature does not depend on a specific transport or protocol, and new
transports and protocols can be implemented using the app tethering API. The RTL provides
built-in support for IP and Classic Bluetooth connections. IP support includes connecting
applications running on the same device.
App tethering provides two components:
• TTetheringManager – Use this component to discover other applications that are using app
tethering, running either on the same device as the application or on other connected devices.
• TTetheringAppProfile – Use this component to define the actions and data that an application
shares with other applications previously paired using the TTetheringManager.
There are multiple app tethering samples included for Delphi in the C:\Users\Public\Documents\
Embarcadero\Studio\20.0\Samples\Object Pascal\RTL\Tethering folder. These samples include:
• BDShoppingList sample –
http://docwiki.embarcadero.com/CodeExamples/en/RTL.BDShoppingList_Sample
• DesktopCast sample –
http://docwiki.embarcadero.com/CodeExamples/en/RTL.DesktopCast_Sample
• MediaPlayer sample –
http://docwiki.embarcadero.com/CodeExamples/en/RTL.MediaPlayer_Sample
• PhotoWall sample –
http://docwiki.embarcadero.com/CodeExamples/en/RTL.PhotoWall_Sample

6.10 Bluetooth, Beacons, Beacon Fencing and IoT


Delphi provides classes and components to implement
Bluetooth (Classic and LE) support in applications. When
an application is running on a Bluetooth-enabled device,
the application can use the Bluetooth capabilities of the
device to connect to applications in remote devices and
exchange data with those remote applications.

To implement Classic Bluetooth support in an


application:
• Add a TBluetooth component to the application.
• Discover remote devices and pair with them.
• Connect to the paired devices.
• Exchange data with the connected devices.
To implement BluetoothLE support for standard services in an application:
• Place a TBluetoothLE component on a form
• Discover Bluetooth LE devices
• Discover and get the services for the device
• Discover and get the characteristics for the service
• Read, write or subscribe to a characteristic
• Subtract the information from the raw data

36 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
A beacon is a Bluetooth Low Energy device that includes information in its
advertising data, specifically in the Manufacturer Specific Data area. This
information allows any Bluetooth Low Energy device in the surrounding
area to identify the device and calculate the distance to it without being
paired or establishing a connection.

* The RTL API for beacons is only available for Windows 10+ platforms.
The two available formats are iBeacon and AltBeacon. Previous Windows
versions do not support BLE advertisements.

For the other supported platforms, three beacon formats are available: iBeacon, AltBeacon and
Eddystone. The RTL API for beacons differentiates them by using the types TBeaconScanMode
and TKindofBeacon. Developers need to know the beacon format they want to monitor:
• iBeacon – format defined by Apple. The full specifications are available here.
• AltBeacon – open format. The full specifications are available here.
• Eddystone – open format defined by Google. The full specifications are available here.

Beacon components and classes include:


• TBeacon – TBeacon is the class for the beacon component.
• TBeaconDevice – TBeaconDevice is the class for the beacon device
component.
• TBeaconRegionCollection – TBeaconRegionCollection is a collection
holding a list of TBeaconRegionItem.
• TBeaconRegionItem – TBeaconRegionItem is the class to hold the information about a
registered region.
• TCustomBeacon – TCustomBeacon is the base class for the TBeacon component.
• TCustomBeaconDevice – TCustomBeaconDevice is the base class for the TBeaconDevice
component.

Additional Beacon information is available at


http://docwiki.embarcadero.com/RADStudio/en/Using_Beacons

BeaconFence allows developers to use Geofencing features in their applications. BeaconFence


improves on the System.Beacon.TBeaconManager to include the BeaconFence Map Editor to help
a developer design a map of a physical space of interest, such as a geographic area, a building,
or in general any real or virtual environment. BeaconFence is available for download in the GetIt
Package Manager for development and limited deployment.

37 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
BeaconFence deployment is included with RAD Server Enterprise
and Architect licenses. BeaconFence includes additional properties
and events including the OnZoneEnter event to trigger an event in
the user’s client application as a predefined zone is entered.

The component also includes a Beacon Fencing Map Editor to


create a bitmap using this GUI editor, and load an existing bitmap,
such as an office floor plan, to use as part of the beacon-fencing
map information.

BeaconFence

38 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
BeaconFence provides an application with the following features:
• Monitor beacons and trigger proximity events.
• Define zones and trigger proximity events for: entering zone, exiting zone and approaching
zone.
• Compute the position of mobile devices in a map.
• Calculate routes between points of interest in a map.

Delphi includes support for a wide range of IoT devices that support Bluetooth. IoT components
cover devices from healthcare to fitness and home automation. Included are both BluetoothLE
(BLE) and Z-Wave device components. IoT devices supported include: blood pressure monitors,
heart rate monitors, weight scales, light bulbs, smart switches, temperature/humidity sensors,
water/flood sensors, smoke & carbon monoxide sensors, programmable thermostats, door
locks, thermometers, etc. Developers can download more than 50 IoT components and sample
applications using the IDEs GetIt Package Manager.

39 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
6.11 InterBase
InterBase is an SQL Standards compliant database. InterBase strictly follows SQL industry
standards. InterBase supports Unicode and is ideal for any character set globally. InterBase offers
multiple join Unicode, real-time event alerts, encryption and patented Change Views’ SQL-based
change tracking.

InterBase features include:


Change Views speed up applications and lowers network traffic and costs by identifying and
fetching only the changes made to the database. Read the Change Views white paper
• Multi-Generational Architecture connects with consistent database snapshots, ensuring
readers don’t block writers from making changes and increases scalability.
• Event Alerts enable a real time alert to connected clients when a change is committed. This
saves on CPU intensive database polling and increases database scalability.
• Developers can easily customize InterBase with custom field types, stored procedures, custom
exceptions, and Triggers. Customization helps automate database logic, data transformation,
and easy maintenance.
• Generators allow applications to fetch sequential numbers that are typically used for Primary
Keys. InterBase will not assign duplicate keys. Generators enable InterBase to produce key
values centrally in the database.
• InterBase provides over-the-wire and at-rest encryption, separate security login, and role-
based user security. InterBase encryption adds very little overhead to database speed and
performance, while still maintaining full on disk encryption.
InterBase includes the developer edition and 4 distributable editions:
• Developer Edition
• Embedded IBLite
• Embedded IBToGo
• Desktop Edition
• Server Edition

6.12 Enterprise Connectors


Embarcadero announced last November that an Enterprise Connector (CData FireDAC
Professional) 1 year subscription license (a $999 value) is now included as part of 10.3 Delphi,
C++Builder and RAD Studio Enterprise and Architect edition purchases.
Key Enterprise Connector benefits include:

• Move, integrate, and analyze data with ease utilizing our FireDAC Enterprise Connectors. These
unparalleled components allow the integration of 70+ Enterprise applications, simplifying
connectivity into a standard model using SQL.
• Included are components for QuickBooks Desktop, MailChimp, Salesforce, YouTube,
SugarCRM, Jira, SurveyMonkey, Amazon DynamoDB, Couchbase, PayPal, eBay, Google Sheets,
Facebook, Twitter, Slack, Dropbox and more

For additional information about the Enterprise Connectors, check out the
CData Enterprise Connectors product page.

40 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi Code Productivity
and Performance
7 Delphi Code Productivity and Performance
A 2018 global survey of Embarcadero’s RAD Studio customer base included highly positive
feedback for its Delphi and C++ Builder tools. Of more than 1,200 organizations, 89 percent
achieved improvement in reducing development cycles using the RAD Studio IDE.

Conducted by TechValidate, an independent research organization, the survey captured feedback


from small to large organizations in industrial manufacturing, computer software/services,
government, electronics, healthcare, education, financial services, and aerospace and defense,
among other categories.

According to TechValidate, the top challenges customers solved with RAD Studio while
developing applications included creating fast run time application performance (50%), keeping
up with latest platforms and devices (50%), meeting project deadlines (37%), deploying to
multiple platforms (36%) and responsive design for multiple device types (27%).

Key features sought by customers who selected RAD Studio for their application IDE include
visual design (82%), comprehensive component libraries (69%), a native OS compiler (58%) and
multi-platform support (55%).

Forty-four percent of RAD Studio customers have used Delphi and/or C++ Builder to write,
compile, package and deploy 20 applications or more, demonstrating the usability, scalability
and agility of the tools. Leading use cases included enterprise (60%), industrial (36%),
engineering (32%), productivity (29%) and scientific (18%) applications.

Benefits included reduced cost of development, faster time to market, access to preconfigured,
pretested components, implementation of modern Windows 10 UIs and the ability to reach
broader audiences through by supporting additional platforms.

7.1 Productivity
When managers and developers think about development and team productivity, the
following features and benefits stand out.
• Project and source code compatibility for multiple 32 and 64-bit Windows versions (7,
8.x, and 10) and multiple platforms (Windows, macOS, iOS, Android and Linux) allows
developers to build apps for the target platforms required by their current and future
users and customers.
• Components provide pre-built functionality and extensibility that speeds up
development of the UI and business logic without having to write as much code while
still providing the interfaces to get under the covers of the components and platforms
when some coding is required.
• Live Bindings lets developers visually connect components at design time with no code
required.
• Seeing live data (for database and REST connections) at design time speeds up
development of the user interface and also ensures that the SQL statements and
connections are correct.

42 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• FireDAC components and implementation allows the use of the same code for multiple
databases while providing additional components for specific database specific features.
• Code Insight in the editor speeds up development by providing code completion,
parameter completion, block completion, error insight, code templates and tool tip
expression evaluation. Check out the Code Insight tutorial in the online documentation.
• FMX provides single source, multi platform, multi-device and device preview to speed
up development for a wide range of devices with different screen sizes and resolutions.
• Industry template applications show developers how to design, build and deploy
complex applications. Industry template applications are available in the C:\Users\
Public\Documents\Embarcadero\Studio\20.0\Samples\Industry Templates\Object Pascal
folder (note: 20.0 is the designation for 10.3 Rio release. A lower numbered folder will
be used for earlier releases).
• A wide range of source code and samples are included with the installation and
available online to speed up development of applications. The source code to the
VCL, FMX and RTL for all platforms is included to read, learn from and as the ultimate
documentation.
• Audits and Metrics are integrated into the IDE and available as command line tools
to help enforce company standards and conventions, capture real metrics, identify
possible problems, and improve the quality of code.
• RAD Studio integrates an open-source unit testing framework for developing and
running automated test cases for applications. The DUnit and DUnitX frameworks are
available for use in Delphi and C++Builder. These frameworks simplify the process of
developing tests for classes and methods for application features and functionality.
Using unit testing in combination with refactoring can help improve application
stability. Using a standard set of tests every time a small change is made makes it more
likely that any problems will be caught earlier in the development cycle.
• Automated Testing solutions are available for Delphi from 3rd party technology partners
including TestRail, Ranorex, and TestComplete.
• Continuous Integration systems are also available for Delphi and are easy to use
because the project file format uses the MS Build standard. CI solutions include:
- Travis CI – https://travis-ci.com/
- FinalBuilder – https://www.finalbuilder.com/finalbuilder
- Continua CI – https://www.finalbuilder.com/continua-ci. Information is available for
Delphi use with Continua.
- JenkinsCI- http://thundaxsoftware.blogspot.com/2011/07/continuous-integration-for-
your-delphi.html
- MSBuild - https://docs.microsoft.com/en-us/visualstudio/msbuild/
msbuild?view=vs-2019
- Amazon Code Pipeline – https://aws.amazon.com/codepipeline/
- Cruise Control – http://cruisecontrol.sourceforge.net/

43 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
7.2 Performance
Native code will always be faster than byte code or interpreted code. Some developers
use JavaScript, Python, Java and other non-compiled languages that often suffer from
slower start up time and multiple framework dependencies. Here are some of the features
and benefits of using native code optimizing compilers, precompiled components and
run time libraries to create small, fast applications. Additional tools are also listed that can
help improve application performance.

• All of the Delphi optimizing compilers produce native machine code applications for
Intel and ARM processors (depending on the target platforms). The components and
run time libraries are also compiled to machine code for fast start up and execution.
• The Delphi compiler allows functions and procedures to be tagged with the inline
directive to improve performance. If the function or procedure meets certain criteria,
the compiler will insert code directly, rather than generating a call. Inlining is a
performance optimization that can result in faster code.
• Consider using the Parallel Programming Library (PPL) for parts of the application’s
logic to take advantage of more processor cores and also provide a more responsive
user interface.
• VCL provides tight integration with Windows APIs and features.
• Delphi can be used to support offloading workloads to Multi-tier and Cloud
infrastructures.
• FireDAC database access is optimized internally for each supported database and
includes additional features to take advantage of database access and operations.
FireDAC also includes support for caching and monitoring capabilities that allow
developers to ensure they are taking advantage of top performance for each
database.
• Tools are available to profile code and find the hot spots and identify code coverage
to further optimize applications. Using a profiler early and often can solve execution,
data structure and algorithm issues before it is too late. Profiling solutions for Delphi
include:
- Smarbear AQTime (also includes an IDE extension for better integration with RAD
Studio).
-
Raize Software CodeSite logging for deeper insight into application execution.
-
EurekaLog that tracks exceptions, memory leaks and more.
- ProDelphi32 and ProDelphi64 provide profilers 32-bit and 64-bit Delphi
applications. Watch a demo on YouTube at https://www.youtube.com/watch?v=cJ_
G8XUWSOI.
- DeLeaker provides profiling for Delphi applications. A demo is available on YouTube
at https://www.youtube.com/watch?v=rnq44Td9opQ.
• Developers, who want the best performance of natively compiled applications and
also need to use Python for data science applications or other requirements, should
consider using the Python4Delphi free components that integrate Python into Delphi
applications.

44 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Additional Features,
Benefits and Resources
8 Additional Features, Benefits and Resources
This section covers a list of additional Delphi features and benefits that will
help developers build Windows and cross platform applications. Included in
this section are links to additional resources that are available to enhance
developer productivity.
8.1 Cross platform
Delphi includes optimized native code compilers and native API/Device support
allows the same object-pascal language features across the supported platforms –
Win32, Win64, iOS, macOS, Android, and Linux.

VCL applications can use the same code, components and libraries on Win32 and
Win64 versions of Windows tested for Windows 7, Windows 8.x and Windows 10.

FMX applications can use the same code, components and libraries on Win32,
Win64, iOS, macOS, and Android. Console, server and GUI applications can also be
built for Linux using Delphi.

Supporting the language, components and libraries while still providing interfaces
to the underlying APIs and platforms increases the productivity of developers
while delivering deployment support and user interface compatibility on each
native platform.

8.2 Virtualizing and Deploying Delphi Applications


Some Delphi customers are choosing to deploy their Delphi applications to
Windows servers or cloud platforms instead of installing the applications on
multiple user desktops. This section covers several options for developers to
consider.

8.2.1 Cybele Software Thinfinity® VirtualUI

Cybele Software, an Embarcadero technology partner, provides the


ability to virtualize Delphi applications by adding one line of code and
a run time library to easily create and deploy applications to Windows
servers and allow multiple users to use browsers to operate the
applications.

Cybele Software’s Thinfinity® VirtualUI enables Windows-based


desktop applications to function as cross-browser and cross-device
web applications. Thinfinity VirtualUI based applications can run on a
Windows environment or be accessed remotely from any HTML5 web
browser. Since VirtualUI was launched in 2015, it has helped thousands
of organizations to embrace digital transformation by extending the life
Cycle of business-critical applications cost-effectively and reliably.

46 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Adding a single line of code to a Delphi application enables dual-platform
functionality. Delphi applications can be up & running in a browser literally
within minutes. All HTML5 browsers are covered including Internet Explorer,
Edge, Firefox, Google Chrome and Safari.

For more information go to Cybele Software ThinFinity product site


using the following URLs:
• Product page
https://www.cybelesoft.com/thinfinity/virtualui/
• Platform requirements
https://www.cybelesoft.com/thinfinity/virtualui/requirements/
• Delphi information page
https://www.cybelesoft.com/delphi-web/
• Delphi 5 minute tutorial YouTube video
https://youtu.be/13ZANj8sUJE

8.2.2 Amazon AppStream 2.0


Amazon AppStream 2.0 is a fully managed application streaming service.
Companies can centrally manage their desktop applications on AppStream
2.0 and securely deliver them to any computer. AppStream can easily scale
applications to any number of users across the globe without acquiring,
provisioning, and operating hardware or infrastructure. AppStream 2.0
is built on AWS, so developers benefit from a data center and network
architecture designed for the most security-sensitive organizations. Each
user has a fluid and responsive application experience, including GPU-
intensive 3D design and engineering ones, because the applications run on
virtual machines (VMs) optimized for specific use cases and each streaming
session automatically adjusts to network conditions.

Enterprises can use AppStream 2.0 to simplify application delivery and


complete their migration to the cloud. Educational institutions can provide
every student access to the applications they need for class on any
computer. Software vendors can use AppStream 2.0 to deliver trials, demos,
and training for their applications with no downloads or installations.
They can also develop a full software-as-a-service (SaaS) solution without
rewriting their application.

8.2.3 The IDE’s Deployment Manager


The RAD Studio Deployment Manager provides the ability to deploy
Windows and multi-device applications from the IDE for any of the
supported target platforms. For Windows, macOS, and iOS, the IDE’s
Deployment Manager works with the Platform Assistant (PAServer
installation files are located in the C:\Program Files (x86)\Embarcadero\
Studio\20.0\PAServer folder). The application being deployed to a target
device must use the Platform Assistant server and a connection profile. For
Android, developers only need to add an Android SDK to RAD Studio to
deploy applications locally and to a device.

47 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
The Deployment Manager allows developers to enable, view, add, delete,
or edit the files that are being deployed. Developers can also use the
Deployment Manager to add other necessary “featured files” to the
deployment, such as database drivers for the target platform.

8.2.4 Third Party Installation Tools


After an application is created, developers can choose from a number of
tools that assist in creating customized installations. Here is a list of some
of the installation tools that are available.
• InstallAware
https://www.installaware.com/
• Advanced Installer
https://www.advancedinstaller.com/
• InstallAnywhere
https://www.flexerasoftware.com/install/products/installanywhere.html
• Inno Setup
http://www.jrsoftware.org/isinfo.php
• Wix Toolset
https://wixtoolset.org/
• InstallShield
https://www.flexerasoftware.com/install/products/installshield.html
• NSIS
https://nsis.sourceforge.io/Main_Page
• InstallForge
https://installforge.net/home/

8.2.5 Submitting Applications to an Online Store


Developers can package and deploy Windows, macOS, iOS, and Android
applications to several online stores. Here are the DocWiki links that define
the steps required to prepare, package and submit applications to each
store.
• Submitting Your App to the Windows Store
• Submitting Your App to the App Store (iOS)
• Submitting Your Android App to Google Play
• Submitting Your App to the Mac App Store
• Submitting Your Android App to the Amazon Appstore

48 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
8.3 Technology Partner Ecosystem
From the beginning, the Delphi team knew they would not be able to build every
component, library, tool, expert, wizard, template, document, tutorial, book, etc.
That’s why Delphi was designed to provide extensibility in the IDE, component library
and more. Over the years a large, global technology partner ecosystem has been
created and supported to provide a wide range of additional development solutions.
Here are just a few of the many links to technology partners and repositories
containing additional tool, component and technology solutions.

• TMS Software, established in 1995, is a software development company


specialized in building components, frameworks, tools, custom project
development, consulting, and training. Some of the TMS family of products for
Delphi include:
- VCL, FMX, FNC, Web, and IntraWeb components for toolbars, grids, menus,
instrumentation, cloud, charting, maps, async, and more.
- TMS Aurelius is an ORM framework for Delphi with full support for data
manipulation, complex and advanced queries, inheritance, polymorphism, and
more.
- TMS Data Modeler is the ultimate tool for modeling databases with an easy
and simple interface. It provides powerful features including diagramming,
reverse engineering, SQL script generation and version control. It has smooth
integration with development tools like Delphi and C++Builder.
-
TMS Echo is a Delphi framework for data replication.
- TMSFixInsight is a code analysis for Delphi developers that detects issues in
source code projects.

• Woll2Woll, founded in 1993, earned its reputation for providing solid, professional
RAD Studio add-ons with its award winning component suites, InfoPower,
1stClass, and FirePower suites of visual components are specifically designed to
give professional database developers unmatched power in their Delphi and C++
Builder desktop and mobile applications
- InfoPower for Delphi VCL library is the most popular suite of components for
building front ends for database applications.
- Firepower has tremendous advantages as it comes with the most intuitive and
powerful components for RAD Studio FireMonkey.

• Steema Software, TeeChart has become the undisputed Chart leader for Delphi,
renowned by the industry and winning the Informant Group’s Delphi Best
Charting and Mapping Tool for seven consecutive years. It is still the only native
VCL charting tool to have been chosen by Embarcadero (formerly Borland) to be
bundled in the Delphi, C++ and HTML5 Builder RAD Studio IDEs.

49 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
- TeeChart Pro charting component library for VCL and FMX offers hundreds of
Graph styles in 2D and 3D for data visualization, 56 mathematical, statistical
and financial functions together with an unlimited number of axes and 30 Palette
components.
-
TeeGrid component for Delphi VCL & FMX offers a very fast grid for RAD Studio
projects.
• FastReport develops report generation and decision cube components for Delphi VCL
and FMX. A developer version of FastReport is included with Delphi.
- FastReport is an add-on component for generate reports quickly and efficiently.
FastReport provides all the tools necessary for developing reports, including
a visual report designer, a reporting core, and a preview window. Delphi versions
are available for VCL and FMX.
- FastCube is a set of OLAP components that enables developers to analyze data and
to build summary tables (data slices) as well as create a variety of reports and
graphs both easily and instantly. It’s a handy tool for the efficient analysis of data
arrays. Delphi versions are available for VCL and FMX.
• /nSoftware IPWorks is the best-selling, most comprehensive suite of programmable
Internet components worldwide. IPWorks eliminates much of the complexity of
developing connected applications, by providing easy-to-use programmable
components that facilitate tasks such as sending email, transferring files, browsing
the Web, consuming XML Web services, and much more.
- Delphi developer edition is available in the GetIt Package Manager.
- Full set of native Delphi VCL Components with encryption, BluetoothLE,
WebSockets, IPC,MQ, IoT, OFX support and more.
• Atozed Software (pronounced A-toe-zed) develops the IntraWeb set of components
that allows developers to create projects like a desktop application, but deploy to the
web as standard HTML and JavaScript (no plugins required).
• Scooter Software Beyond Compare allows developers to quickly and easily compare
files and folders. By using simple, powerful commands developers can focus on the
differences they’re interested in and ignore those they’re not. Developers can then
merge the changes, synchronize files, and generate reports.
• Raize Software has been creating high-quality, innovative computer software since
1995. The Konopka Signature VCL controls is a suite of over 200 Windows UI controls
and designer and is now included in the RAD Studio bonus pack and available for
download in the GetIt Package Manager. Raize Software also provides the CodeSite
logging system that gives developers deeper insight into how their code is executing,
enabling them to locate problems more quickly and monitor how well their code is
performing.
• Project Indy is an open source project that provides Internet components for VCL
and FMX applications. Indy offers client and server components for using internet
protocols, such as TCP, UDP, echo, FTP, HTTP, Telnet, and many others. Indy also
provides components for I/O handling, intercepts, SASL, UUE, MIME, XXE encoders,
and others. Project Indy components are preinstalled with each release of Delphi.

50 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• Project JEDI (Joint Endeavor of Delphi Innovators) is a open source project providing
VCL components, run time libraries, tools and Windows API interface units.
- The JEDI Visual Component Library (JVCL) consists of a large collection (currently
ca 600) of visual and non-visual components which can be reused in Delphi and
C++ Builder projects. The JEDI VCL library is available for installation from the GetIt
Package Manager.
- The JEDI Code Library (JCL) consists of a set of thoroughly tested and fully
documented utility functions and non-visual classes which can be reused
in Delphi and C++ Builder projects.
• Torry’s Delphi Pages contains links to tens of thousands of Delphi vendors, components,
libraries, books, samples, and more.

8.4 Education – Learn, Get Help, Find Code


There are many resources and sites available to learn Delphi, find out how to solve a
problem, how to create an application and more. Here are just a few (of the many) sites
that provide knowledge of Delphi and help increase development productivity.
8.4.1 LearnDelphi.org
LearnDelphi.org is the home for learning to code with Object Pascal
Delphi. Pascal was designed to teach good programming practices, and
Delphi takes the best of Pascal and gives it all the features and power
needed to tackle the most demanding applications on all the platforms.
This site is full of resources and free content for teaching and learning
software development.

8.4.2 Embarcadero Academy


The Embarcadero Academy offers self paced and live courses directly
from some of the most knowledgeable and experienced developers in
the industry. The academy does not discriminate among programming
languages, tools, and frameworks. Currently developers will find courses
in the Embarcadero Academy that primarily focus on languages and
skills centered around Embarcadero products such as RAD Studio,
Delphi, C++Builder, InterBase, and Sencha. And while most of our
content is Delphi and C++ oriented, as time goes on developers will
find more courses and lectures on a wide variety of programming skills
and languages.
Courses are sold individually, although there are also course bundles
that combine multiple subject matter courses into a single course
bundle. Most of the academy’s courses are centered around streaming
video lectures. Live courses may be provided in the future.

51 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
The Embarcadero Academy also posts free bootcamp and conference replays.
Also instructors may sometimes choose to offer discount coupons for their
courses. If offered by an instructor students can get their coupon code directly
from the instructor via their blogs, social media, or their websites and from time
to time deals will also be posted here on our Deals page.

8.4.3 Developer Skill Sprints


Developer Skill Sprints are fast programming tips, tricks and techniques that
developers can use right now! These online videos (20-minutes or less) contain
tutorials (recorded live) on software development for Windows, macOS, Android
and iOS.
http://embt.co/skill-sprints-youtube

8.4.4 Webinar Replays and other Videos on YouTube


Embarcadero has hundreds of webinar replays, product launch videos and a wide
range of educational and informational videos categorized into multiple playlists.
https://www.youtube.com/user/EmbarcaderoTechNet/playlists

8.4.5 How-To Videos


How-To videos contain short tutorials focused on learning how to use specific
features and technologies for Embarcadero RAD Studio, Delphi, C++Builder and
InterBase.
https://embt.co/TutorialVideos

8.4.6 Embarcadero Developers Blog


Embarcadero product managers and community leaders blog on a wide range of
Delphi development topics on the Embarcadero developers blog.
https://community.idera.com/developer-tools/b/blog

8.4.7 Embarcadero on Social Media


Embarcadero team members are very active on social media sites. Here are the
links to follow the news, tips, events and more:
• Twitter
https://twitter.com/EmbarcaderoTech
• Facebook
https://www.facebook.com/embarcaderotech
• LinkedIn
https://www.linkedin.com/company/7548

52 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
From the IDE, developers can also keep track of upcoming events and new videos on the
Embarcadero YouTube channel on the right side of the Welcome Page in the IDE.

8.4.8 Built With Delphi


Developers are always asking who is using Delphi and what types of applications are they
building. The following are some sites that catalog “Build with Delphi” applications.
• Good Quality Applications Built With Delphi
https://delphi.fandom.com/wiki/Good_Quality_Applications_Built_With_Delphi
• Famous software made with Delphi
https://jonlennartaasenden.wordpress.com/2014/11/06/famous-software-made-with-
delphi/
• Awesome Applications Built in Delphi
https://beyondvelocity.blog/2019/05/19/awesome-applications-built-in-delphi/
https://beyondvelocity.blog/2019/07/28/delphi-mobile-its-all-components/
• Cool Apps Winners – onYouTube
https://www.youtube.com playlist?list= PLwUPJvR9mZHhHEPxc8i9RCNX4jTyBZOfw

8.4.9 Code Examples, Tutorials and Samples


There are numerous Delphi code examples in the online documentation wiki. Developers
will also find many sample projects in the installation folder at C:\Users\Public\
Documents\Embarcadero\Studio\20.0\Samples (note: 20.0 is the designation for 10.3 Rio
release. A lower numbered folder will be used for earlier releases)
http://docwiki.embarcadero.com/CodeExamples/en/Code_Examples_Index

8.4.10 RAD Studio IDE Tools API


Developers can extend and customize the RAD Studio IDE with menu items, tool bar
buttons, dynamic form-creation wizards, new components and more using the Tools
API. The Tools API is a suite of over 100 interfaces that interact with and control the IDE,
including the main menu, the tool bars, the main action list and image list, the source
editor’s internal buffers, keyboard macros and bindings, forms and their components in
the form editor, the debugger and the process being debugged, code completion, the
message view, and the to-do list.
Looking for additional information about the IDE’s tools API? Have a need to add
functionality to increase developer and team productivity? Want to learn how to create
IDE extensions, experts, templates, and wizards? Check out the following sites that contain
additional information about the open tools APIs.
• http://www.gexperts.org/open-tools-api-faq/
• https://www.embarcadero.com/creating-ide-extensions-with-the-delphi-open-tools-api
• https://www.davidghoyle.co.uk/WordPress/?page_id=1110

53 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
8.4.11 GetIt Package Manager
The GetIt Package Manager allows
developers to browse, download,
purchase, and install packages into RAD
Studio. Packages may provide libraries,
components, IDE extensions, and SDKs.
GetIT is 34available inside the IDE using the
Tools | GetIt Package Manager menu item.

8.4.12 GitHub Repositories for


Delphi
https://github.com/search?q=delphi
Embarcadero, technology partners and community members host projects on GitHub.
Check out the more than 9,600 repository results containing solutions, components,
projects and other information.

8.4.13 Answers on StackOverflow


Use the Delphi tag to find the most recent questions and answers on StackOverflow.
Delphi team members, Most Valuable Professionals (MVPs) and community members are
answering developer questions in real time.
https://stackoverflow.com/questions/tagged/delphi

8.4.14 Platform Status Page


Not sure if a platform is supported for a specific release of Delphi? Are there known issues
and workarounds for a specific platform or version? Embarcadero has a page on the online
DocWiki that shows the supported platforms and operating systems for different RAD
Studio versions. A * (star) sign next to an operating system indicates that there is a known
issue with that operating system and a corresponding RAD Studio version. To see the
workaround for that particular issue, click on the name of the operating system or scroll
down to the appropriate section.
http://docwiki.embarcadero.com/PlatformStatus/en/Main_Page

54 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Videos for Windows 10 and VCL
9 Videos for Windows 10 and VCL
There are hundreds of videos focused on using Delphi to
create Windows applications, modernizing applications
for Windows 10, learning Delphi, and a wide range of
Windows development skills development.

9.1 Modernizing Apps for Windows 10


• Top Windows 10 Features for Your VCL Applications –
https://www.youtube.com/watch?v=7KuzjODgR3c
• Building Native Apps for Windows: Why It Matters, with Serge Pilko (Embarcadero MVP)
https://www.youtube.com/watch?v=4SLo1nQbYKM
• Move Your Windows Apps Forward from Windows 7 to Windows 10 with Microsoft
and Embarcadero
https://www.youtube.com/watch?v=3xKMGbUmwUs
• VCL Integration with WinAPI, COM & ShellAPI, and WinRT
https://www.youtube.com/watch?v=mM6sN6KS12U
• Fast Migration to Windows 10 High DPI, with Denis Zubov
https://www.youtube.com/watch?v=niCFI8kgoOY
• New UX Design Principles for RAD Studio Developers in Windows 10, with Sarina DuPont
https://www.youtube.com/watch?v=Qx71ytekamU
• Working with Windows 10’s Windows Runtime (WinRT)
https://www.youtube.com/watch?v=bQl9GQB5y54
• Windows 10 – Modernization with RAD Studio and TMS Software
https://www.youtube.com/watch?v=sU0x3sn-m_o
• FireDAC for Windows 10 Database Access
https://www.youtube.com/watch?v=rq16Lc1ZZOY
• Moving Your App to the Microsoft Store, with Olaf Monien
https://www.youtube.com/watch?v=ODVHne9GOFY
• Windows Subsystem for Linux (WSL) with Delphi
https://www.youtube.com/watch?v=AD9XG4Y7MwA
• High DPI User Interface Design with the VCL
https://www.youtube.com/watch?v=Q5mu8yigcK4
• Windows 10 VCL
https://www.youtube.com/watch?v=LbAEWketmMg
• Leverage Windows 10 APIs to Attract More Users –
https://www.youtube.com/watch?v=IvbQ9Hmfu_4

56 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
9.2 Delphi IDE Features and Productivity
• Creating your First VCL Application for Windows (Delphi)
https://www.youtube.com/watch?v=7oBTZ16dbc4
• LiveBinding for VCL Developers
https://www.youtube.com/watch?v=SVpbY4et2ug
• Using LiveBinding in VCL Applications
https://www.youtube.com/watch?v=i9_6CJi5ElM
• Working with VCL Styles to Create Great Looking Windows Applications
https://www.youtube.com/watch?v=m3RyP6AW9y0
• Cool Tricks for VCL Styles
https://www.youtube.com/watch?v=c6E3DZrEdtQ
• VCL – the best bits
https://www.youtube.com/watch?v=tH61SOVBfW8

57 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
25 years of Delphi Innovations
10 25 years of Delphi Innovations
The following sections provide a quick look at some of the key features introduced and enhanced over
the past 25 years of Delphi releases. You can take a look back at the history of Delphi, development
memories, developer stories of using Delphi, and more at https://delphi.embarcadero.com/
Delphi 1 – February 15, 1995
• Native Code optimizing compiler
• Integrated Debugging
• 16-bit Windows 3.1 support
• Visual Two-Way tools
• Components / VCL
• Database support via BDE and SQL Links
• Database data live at design time

Delphi 2 – February 10, 1996


• 32-bit Windows 95 support
• Database Grid
• OLE automation
• Visual form inheritance
• Long strings
• Included Delphi 1 for 16-bit development

59 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 3 – August 5, 1997
• Interfaces (COM based)
• Code Insight
• Component Templates
• DLL Debugging
• WebBroker
• ActiveForms
• Component Packages
• MIDAS multi-tier architecture

Delphi 4 – June 17, 1998


• Docking, Anchors and Constraints
• Method Overloading
• Dynamic arrays
• Windows 98 support

Delphi 5 – August 10, 1999


• Desktop layouts
• Frames
• XML support
• DBGo for ADO
• UI Language Translations

Delphi 6 – May 21, 2001


• Structure Window
• SOAP Web Services
• dbExpress
• BizSnap
• WebSnap
• DataSnap

60 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 7 – August 9, 2002
• RAD Web application development
• Web Services
• UML Designer
• Model Driven Development
• .NET interoperability
• Windows XP themes

Delphi 8 – December 22, 2003


• .NET support

Delphi 2005 – October 12, 2004


• Multi-unit namespaces
• Error Insight
• History Tab
• for..in
• Function inlining
• Theme-enabled IDE
• Refactorings
• Wild-card in uses statement
• Data Explorer
• Integrated Unit Testing

Delphi 2006 – November 23, 2005


• Operator overloading
• Static methods and properties
• Designer Guidelines
• Form positioner view
• Live code templates
• Block Completion

61 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• Line numbers
• Change Bars
• Sync-edit
• Code Folding and method navigation
• Debugging Tool-Tips
• Searchable Tool Palette
• FastMM memory manager
• Support for MySQL
• Unicode support in dbExpress
• TTrayIcon
• TFlowPanel
• TGridPanel

Delphi 2007 – March 16, 2007


• MS Build, Build Events, Build Configurations
• Windows Vista support – glassing, theming
• dbExpress 4 – connection pooling, delegate drivers
• CPU viewer windows
• FastCode enhancements
• IntraWeb / AJAX support
• Welcome Page
• Simultaneous-ship of English, French, German, Japanese editions

Delphi 2009 – August 25, 2008


• Unicode
• Generics
• Anonymous Methods
• Ribbon Controls
• DataSnap
• Build Configurations
• Class Explorer
• Type Library Editor Window
• PNG support

62 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 2010 – August 15, 2009
• IDE Insight
• Attributes
• Enhanced RTTI
• Direct2D canvas
• Windows 7 support
• Touch/Gestures
• Source Code Formatter
• Incremental search
• Thread Specific Breakpoints
• Debugger Visualizers
• IOUtils unit for files, paths and directories
• Source Code Audits and Metrics
• Background Compilation
• Source code for MIDAS.DLL

Delphi XE – August 30, 2010


• Regular Expression Library
• Version Insight – Subversion Integration
• dbExpress – Filters, Authentication, Proxy Generation, JavaScript Framework
• REST support
• Indy WebBroker
• Cloud – Amazon EC2, Microsoft Azure
• Build Groups
• Named Threads in the Debugger
• Command line Audits, Metrics
• Documentation Generation
• Toolset and Component Additions:
• AQTime, Beyond Compare
• CodeSite, Documentation Insight
• FastReport, FinalBuilder, IP*Works!

63 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi XE2 – September 2, 2011
• 64-Bit Windows compiler
• Mac OSX
• FireMonkey (FMX)
• Live Bindings – FMX and VCL
• VCL Styles
• Unit Scope Names
• Platform Assistant
• DataSnap – Connectors for Mobile Devices, Cloud API, HTTPS support, TCP monitoring
• dbExpress support for ODBC drivers
• Deployment Manager

Delphi XE3 – September 3, 2012


• Metropolis UI for Windows 8, 7, Vista and XP
• OS X Mountain Lion
• Visual Live Bindings
• FMX 2:
• actions, touch/gestures, layouts and anchors
• bitmap styles
• TMaterial source for FM 3D components
• audio/video
• Location sensor component
• VCL/FMX support for sensor devices
• Virtual keyboard support
• DirectX 10 support

Delphi XE4 – April 22, 2013


• FireDAC universal data access components
• Notifications
• Platform Services
• Location, Motion and Orientation sensor components
• TListView component
• Mobile form designer

64 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• TWebBrowser component
• iOS support
• Mac OSX full screen support
• InterBase – IBLite and IBToGo

Delphi XE5 – September 11, 2013


• Android support
• Notification component
• iOS 7 style support
• Configurable form designer for mobile devices
• Deployment manager for Android devices
• REST Services client access and authentication components

Delphi XE6 – April 15, 2014


• App Tethering Components
• Cloud Service (BaaS) RESTful WEB Services integration (Parse, Kinvey, App42)
• Taskbar component
• New VCL Styles, VCL sensor components
• Mobile In-app purchase and in-app advertising
• Create apps for Google Glass
• Accessibility for FireMonkey desktop
• Database Explorer for FireDAC
• Apache support (WebBroker)
• DirectX 11 support
• Windows 7 and 8.1 styles
• Acces to Cloud base RESTful WEB Services
• FireDAC Compatible with more databases
• Fully integrated InterBase support

Delphi XE7 – September 2, 2014


• Multi-Device Designer – standard and custom views
• FireMonkey Multi-Device Applications Support Both Desktop and Mobile Platforms
• FireMonkey Behavior Service
• Parallel Programming Library (PPL)
• IBLite embeddable database for Windows, Mac, Android and iOS

65 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• Multi-Display Support
• TMultiView component
• Multi-Touch Support and Gestures Changes
• Full-Screen Immersive Mode for Android
• FMX Pull-to-Refresh Feature for TListView on iOS and Android
• FMX Save State Feature
• Interbase IBLite for Windows and OSX
• Enterprise Mobility Services (RAD Server)
• Bluetooth and BluetoothLE run time library
• TBluetoothLE component
• App Tethering – Bluetooth and IP Address
• OmniXML Library
• Java2Pas interfaces converter
• Git version control support

Delphi XE8 – April 7, 2015


• GetIt Package Manager
• FireDAC Improvements
• New Embarcadero Community Toolbar
• Native Presentation of TListView, TSwitch, TMemo, TCalendar, TMultiView, and TEdit on iOS
• Interactive Maps
• New Options for Media Library
• InputQuery now Supports Masking Input Fields

Delphi 10 Seattle – August 31, 2015


• Android Background Services Support
• FireDAC support for the NoSQL MongoDB database
• FireMonkey controls zOrder support for Windows
• New TBeaconDevice class for turning a device on one of the supported platforms into a
“beacon”
• Windows 10 styles
• StyleViewer for Windows 10 Style in Bitmap Style Designer
• High-DPI Awareness and 4K monitors support
• Support for Android Services in the IDE
• Support for calling WinRT APIs

66 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Delphi 10.1 Berlin – April 20, 2016
• Android 6.0 Support
• Windows Desktop Bridge Support
• Address Book for iOS and Android
• New ListView Item Designer
• New CalendarView control
• QuickEdits for VCL
• High DPI Support on Windows
• Hint Property Changes
• RAD Server Apache Server Support
• GetIt based Web installer

Delphi 10.2 Tokyo – March 22, 2017


• 64-bit Linux support for Delphi
• FireDAC provides Linux support for all Linux-capable DBMS
• MariaDB support (v5.5)
• MySQL support for v5.7
• Firebird support for Direct I/O
• QuickEdits for FMX
• New VCL Controls for Windows 10
• Updated IDE Look & Feel (Dark Theme)
• RAD Server Deployment License Included

Delphi 10.3 Rio – November 21, 2018


• New Delphi Language Features – Inline Variable Declaration, Type inference, AnsiString /
AnsiChar on Linux
• FMX Android zOrder, Native Controls and API Level 26
• iOS 12 support
• Windows 10, VCL, and HighDPI improvements
• Per Monitor V2 support for VCL
• Extensive IDE UI modernization – includes a new light theme and a revision of the dark theme
• RAD Server architecture extensions:
• New EndPoint Attributes for Content-Type and Accept based mapping
• HTTP Verb to Custom Method Name Mapping

67 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
• Ability to Delegate Processing of a Request to a Custom Class or Component
• Quality and Performance improvements
• C++/Delphi ABI compatibility

Delphi 10.3.1 Rio – February 14, 2019


• Expanded support for iOS 12 and iPhone X series devices
• RAD Server Console UI redesign and migration to the Ext JS framework (available via GetIt)
• RAD Server includes expanded push notification support to target more devices.
• Improved FireDAC support for Firebird 3.0.4 and Firebird embedded
• HTTP and SOAP Client Library Enhancements on Windows – support for compression
decoding
• Two new IDE productivity tools: Bookmarks and Navigator
• 15 new custom VCL Windows and Multi-Device FireMonkey styles

Delphi 10.3.2 Rio – July 18, 2019


• Delphi macOS 64-bit
• RAD Server Wizards and Deployment Improvements
• Enhanced Firebase Push Notifications Android Support
• Delphi Linux Client Application Support
• Runtime Library Performance improvements
• VCL Significant Quality Improvements
• Delphi 10.3.3 Rio – November 21, 2019
• Delphi Android 64-bit support
• iOS 13 and macOS Catalina Support
• RAD Server Docker Deployment
• Enterprise Connectors in Enterprise & Architect Edition
• FireDAC drivers improvements for PostgreSQL, SQLite, DB2, and Oracle

Delphi 10.3.3 Rio – November 21, 2019


• Delphi Android 64-bit support
• iOS 13 and macOS Catalina Support
• RAD Server Docker Deployment
• Enterprise Connectors in Enterprise & Architect Edition
• FireDAC drivers improvements for PostgreSQL, SQLite, DB2, and Oracle

68 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
About the Author
About the Author
David Intersimone, known to many as “David
I”, is a passionate and innovative software
industry veteran who extols and educates
the world on developer tools, software
development and software architectures.
David I joined Borland Software in 1985
where he practically invented Developer
Relations. During David I’s forty-seven
years as a software engineer, development
manager, developer community executive,
development cheerleader, and developer
advocate, he has created a thriving global
developer community, thousands of articles,
videos and blog posts.
Before Embarcadero acquired the developer
tools business from Borland Software, David spent more than 20 years with Borland in various
evangelism, engineering, and development capacities, including creating the company’s
developer relations program. David continued to work at Embarcadero for an additional 11
years as Vice President of Developer Relations.
Today, David I shares his visions and insights as a pioneer in developer relations with program
managers, directors and developers where he gives workshops, webinars, guidance and advice
on developer communities, developer advocacy and software development. David is also an
Embarcadero Developer Tools MVP (https://www.embarcadero.com/embarcadero-mvp-program)
participating in the developer community, writing, teaching, blogging and participating in
online events.
David I recently received the Spirit of Delphi Award for 2019. Winners of the award are selected
by the internal Delphi team members. Candidates are considered based on their contributions
to the spirit of Delphi and the community of developers.

70 Copyright © 2020 Embarcadero Technologies, Inc


An Idera, Inc. Company
Embarcadero Delphi
and the State
of Windows
Development

An Idera, Inc. Company

By David Intersimone “David I”

Copyright © 2020 Embarcadero Technologies, Inc

You might also like