Professional Documents
Culture Documents
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.
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.
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.
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!”
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.
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.
One repeat question that developers have asked over the years is, “Which
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.
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.
• 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.
Editions Architect, Enterprise, Ultimate, Free (open Free (open Free (open
Enterprise, Professional, Community source) source) source)
Professional, Community (Free)
Community (Free)
(Free)
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.
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
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.
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.
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 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.
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.
Included with Delphi are VCL and FMX sample applications that implement a
parallelized version of Conways Game of Life.
• 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.
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
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.
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.
* 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.
BeaconFence
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.
• 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.
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.
• 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.
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.
• 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.