Recent from talks
Nothing was collected or created yet.
Delphi (software)
View on Wikipedia| Delphi | |
|---|---|
Screenshot of Delphi 10.4, with the visual form editor being used to create an application | |
| Original authors | Borland, CodeGear, Embarcadero |
| Developer | Embarcadero Technologies |
| Initial release | 1995 |
| Stable release | RAD Studio 13 Florence[1] |
| Written in | Mostly Delphi (Object Pascal) |
| Operating system | Runs on Windows;[2][non-primary source needed] targets Windows, Linux, macOS, Android, iOS |
| Type | Software Development, Designer, IDE, Compiler, RTL |
| License | Freemium |
| Website | www |
Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software,[3] currently developed and maintained by Embarcadero Technologies.
Delphi's compilers generate native code for Microsoft Windows, macOS, iOS, Android and Linux (x64).[4][5][6]
Delphi includes a code editor, a visual designer, an integrated debugger, a source code control component, and support for third-party plugins. The code editor features Code Insight (code completion), Error Insight (real-time error-checking), and refactoring. The visual forms designer has the option of using either the Visual Component Library (VCL) for pure Windows development or the FireMonkey (FMX) framework for cross-platform development. Database support is a key feature and is provided by FireDAC (Database Access Components). Delphi is known for its fast compilation speed, native code, and developer productivity.[citation needed]
Delphi was originally developed by Borland as a rapid application development tool for Windows as the successor of Turbo Pascal. Delphi added full object-oriented programming to the existing language, and the language has grown to support generics, anonymous methods, closures, and native Component Object Model (COM) support.
Delphi and its C++ counterpart, C++Builder, are interoperable and jointly sold under the name RAD Studio. There are Professional, Enterprise, and Architect editions, with the higher editions having more features at a higher price. There is also a free-of-charge Community edition, with most of the features of Professional, but restricted to users and companies with low revenue.[7][non-primary source needed]
Features
[edit]Delphi supports rapid application development (RAD). Prominent features are a visual designer and two application frameworks, Visual Component Library (VCL) for Windows and FireMonkey (FMX) for cross-platform development.
Delphi uses the Pascal-based programming language Object Pascal created by Anders Hejlsberg for Borland (now IDERA) as the successor to Turbo Pascal. It supports native cross-compilation to many platforms including Windows, Linux, iOS, and Android.
To better support development for Microsoft Windows and interoperate with code developed with other software development tools, Delphi supports independent interfaces of Component Object Model (COM) with reference counting class implementations, and support for many third-party components. Interface implementations can be delegated to fields or properties of classes. Message handlers are implemented by tagging a method of a class with the integer constant of the message to handle.[citation needed]
Database connectivity is extensively supported through VCL database-aware and database access components.
Later versions have included upgraded and enhanced runtime library routines, some provided by the community group FastCode.
Characteristics
[edit]Delphi uses a strongly typed high-level programming language, intended to be easy to use and originally based on the earlier Object Pascal language. Pascal was originally developed as a general-purpose language "suitable for expressing the fundamental constructs known at the time in a concise and logical way", and "its implementation was to be efficient and competitive with existing FORTRAN compilers"[8] but without low-level programming facilities or access to hardware. Turbo Pascal and its descendants, including Delphi, support access to hardware and low-level programming, with the facility to incorporate code written in assembly language and other languages. Delphi's object-orientation features only class- and interface-based polymorphism.[9] Metaclasses are first class objects. Objects are references to the objects (as in Java), which Delphi implicitly de-references, so there is usually no need to manually allocate memory for pointers to objects or use similar techniques that some other languages need. There are dedicated reference-counted string types, and also null-terminated strings.
Strings can be concatenated by using the '+' operator, rather than using functions. For dedicated string types, Delphi handles memory management without programmer intervention. Since Borland Developer Studio 2006, there are functions to locate memory leaks.
Delphi includes an integrated IDE. The Delphi products all ship with a run-time library (RTL) and a Visual Component Library (VCL), including most of its source code. Third-party components (sometimes with full source code) and tools to enhance the IDE or for other Delphi related development tasks are available, some free of charge. The IDE includes a GUI for localization and translation of created programs that may be deployed to a translator; there are also third-party tools with more features for this purpose. The VCL framework maintains a high level of source compatibility between versions, which simplifies updating existing source code to a newer Delphi version. Third-party libraries typically need updates from the vendor but, if source code is supplied, recompilation with the newer version may be sufficient. The VCL was an early adopter of dependency injection or inversion of control; it uses a reusable component model, extensible by the developer. With class helpers, new functionality can be introduced to core RTL and VCL classes without changing the original source code of the RTL or VCL.
Delphi supports a wide range of third-party database access components that provide native connectivity to major database systems. These include specialized libraries for Oracle, SQL Server, MySQL/MariaDB, PostgreSQL, SQLite, and InterBase/Firebird. Some components, like DAC, offer universal data access solutions supporting multiple databases and cloud services such as Salesforce and FreshBooks. These libraries are regularly updated to remain compatible with the latest IDE versions (e.g., RAD Studio 12), operating systems (e.g., macOS Sonoma, iOS 17, Android 13), and database engines (e.g., Oracle 23, SQL Server 2022, PostgreSQL 16).
The compiler is optimizing and is a single-pass compiler. It can optionally compile to a single executable which does not require DLLs. Delphi can also generate standard DLLs, ActiveX DLLs, COM automation servers and Windows services.
The Delphi IDEs since Delphi 2005 increasingly support refactoring features such as method extraction and the possibility to create UML models from the source code or to modify the source through changes made in the model.
Delphi has communities on the web, where also its employees actively participate. And Delphi is using in collaboration with FireDAC components.
Backward compatibility
[edit]Delphi is one of the languages where backward compatibility is close to 100%. Although each new release of Delphi attempts to keep as much backward compatibility as possible to allow existing code reuse, new features, new libraries, and improvements sometimes make newer releases less than 100% backward compatible.
Since 2016, there have been new releases of Delphi every six months, with new platforms being added approximately every second release.[10]
Frameworks
[edit]Delphi offers two frameworks for visual application development, VCL and FireMonkey (FMX):
- Visual Component Library (VCL) is the framework for developing pure Windows applications. VCL is a long-standing framework, included in the first release of Delphi and actively developed ever since then.
- FireMonkey (later abbreviated FMX), was released in 2011, as part of Delphi XE2, together with an additional set of built-in compilers for non-Windows platforms. FireMonkey is a cross-platform framework for Windows, macOS, iOS, Android and Linux (x64). The GUI parts of FireMonkey are largely based on Direct3D and OpenGL. FireMonkey is not compatible with VCL; they are two separate frameworks. FireMonkey applications do, however, allow easy sharing of non-visual code units with VCL applications, enabling a lot of code to be ported or shared easily between the platforms.
Interoperability
[edit]Delphi and its C++ counterpart, C++Builder, are interoperable. They share many core components, notably the IDE, the VCL and FMX frameworks, and much of the runtime library. In addition, they can be used jointly in a project. For example, C++Builder 6 and later can combine source code from Delphi and C++ in one project, while packages compiled with C++Builder can be used from within Delphi. In 2007, the products were released jointly as RAD Studio, a shared host for Delphi and C++Builder, which can be purchased with either or both. Starting with Rio, there is also interoperability with Python.
Sample "Hello World" program
[edit]program ObjectPascalExample;
type
THelloWorld = class
procedure Put;
end;
procedure THelloWorld.Put;
begin
Writeln('Hello, World!');
end;
var
HelloWorld: THelloWorld; { this is an implicit pointer }
begin
HelloWorld := THelloWorld.Create; { constructor returns a pointer to an object of type THelloWorld }
HelloWorld.Put;
HelloWorld.Free; { this line deallocates the THelloWorld object pointed to by HelloWorld }
end.
Note that the object construct is still available in Delphi.
History
[edit]Uses in schools
[edit]In 2016, Delphi was named the language of choice for teaching programming in South African schools as a subject of information technology (IT).[11]
Roadmaps
[edit]Embarcadero used to publish "roadmaps" describing their future development plans. The last one was published in November 2020.[12][non-primary source needed] Version 10.5 referred to in the November 2020 roadmap was renamed 11.0. Starting with Delphi 11, Embarcadero decided to no longer publish formal roadmaps. Instead, possible new features are now presented in a loose order through blog entries and online webinars. An important role has Marco Cantú (product manager) with his blog.[citation needed]
Related software
[edit]- Borland Enterprise Studio, a precursor to RAD Studio, is a software development suite that includes support for multiple languages. Borland Enterprise Studio for Windows supports Delphi.[13]
- Borland Kylix: Similar to Delphi, but for Linux, released in 2001. This was the first attempt to add Linux support to the Delphi product family.[14] Kylix used the new CLX cross-platform framework (based on Qt), instead of Delphi's VCL. Kylix was discontinued after version 3. Today Linux support is integrated into the main Delphi product and uses the FireMonkey cross-platform framework.
- InterBase is an embeddable SQL database that integrates natively to Delphi and C++Builder for client/server or embedded development. Its distinguishing features reduced administration requirements, commercial-grade data security, disaster recovery, and change synchronization. It is also accessible by all major languages and platforms in the market with database connection protocols like ODBC, ADO, ADO.NET and even with Java by JDBC/ODBC Bridge or Java type 4 connectors.
- JBuilder was a tool for Java development based on Eclipse since version JBuilder 2007.
- RadPHP (later replaced with HTML5 Builder) was an IDE for PHP that provided true RAD functionality. It has a form designer similar to that of Delphi or Visual Basic, and an integrated debugger based on the Apache web server. It also includes a VCL library ported to PHP. Unlike other IDEs, it supports Web 2.0 features such as Ajax. Delphi for PHP was announced on March 20, 2007, renamed in October 2010 to RadPHP, and is based on Qadram Q studio. Embarcadero acquired Qadram in January 2011.
- Delphi Prism (later renamed Embarcadero Prism) derived from the Oxygene language (formerly named Chrome) from RemObjects. It ran in the Microsoft Visual Studio IDE rather than RAD Studio. It was licensed and rebranded by Embarcadero to replace Delphi.NET when that product was discontinued.
- Free Pascal is an open-source Pascal cross-platform cross-compiler that supports most of Delphi's Object Pascal code. Free Pascal also has its own language extensions, multiple compiler [language syntax] modes, and supports 18+ operating systems and 9+ processor architectures.[15] Lazarus is a cross-platform RAD IDE that uses the Free Pascal compiler.
Notable third-party libraries
[edit]- FastCode – Enhanced runtime libraries and memory manager.
- OpenWire (library) – Data flow, events, and state synchronization component library.
- Teechart – Charting library.
References
[edit]- ^ "Announcing the Availability of RAD Studio 13 Florence". 10 September 2025. Retrieved 10 September 2025.
- ^ "Installation Notes - Operating System Requirements". Archived from the original on 2020-08-06. Retrieved 2020-09-05.
- ^ William Buchanan (4 February 2003). Mastering Delphi Programming. Palgrave Macmillan. pp. 10–. ISBN 978-1-137-17356-0.[permanent dead link]
- ^ "Performance Comparison from Delphi 2010 to XE6 (Part 2)". Riversoft AVG. 12 May 2014. Archived from the original on 26 July 2015. Retrieved 9 March 2016.
- ^ "The Delphi Geek: Built For Speed". Archived from the original on 23 March 2016. Retrieved 9 March 2016.
- ^ "Discussion on Hacker News about Delphi being alive". Hacker News. Archived from the original on 2 July 2016. Retrieved 9 March 2016.
- ^ "Delphi: App Development Product Editions". Embarcadero. Archived from the original on 14 March 2021. Retrieved 13 March 2021. With download link for Delphi Feature Matrix
- ^ "Recollections About the Development of Pascal" (PDF). Archived (PDF) from the original on 2016-05-12. Retrieved 2016-01-12.
- ^ Lingfeng Wang; Kay CHen Tan (20 January 2006). Modern Industrial Automation Software Design. John Wiley & Sons. pp. 113–. ISBN 978-0-471-77627-7.
- ^ "List of Delphi language features and version in which they were introduced/deprecated". Stack Overflow. Archived from the original on 28 February 2016. Retrieved 9 March 2016.
- ^ Staff Writer (2016-02-03). "Embarcadero Delphi named developer language of choice for South African schools". Archived from the original on 2022-03-31. Retrieved 2022-03-17.
- ^ "RAD Studio November 2020 Roadmap PM Commentary". blogs.embarcadero.com. 17 November 2020. Archived from the original on 2020-11-28. Retrieved 2020-11-27.
- ^ "Borland Enterprise Studio". Archived from the original on 2002-02-05. Retrieved 2002-02-05.
- ^ "Kylix is here!". Archived from the original on 2019-09-04. Retrieved 2020-09-05.
- ^ "Free Pascal Homepage". freepascal.org. Archived from the original on 1999-01-25. Retrieved 2016-04-27.
External links
[edit]Delphi (software)
View on GrokipediaOverview
Language and IDE
Delphi serves as a rapid application development (RAD) environment that combines the Delphi dialect of the Object Pascal programming language with an integrated development environment (IDE) designed for building high-performance native applications across various platforms.[1] This integration enables developers to create graphical user interfaces and business logic efficiently, leveraging visual tools alongside compiled code for optimal performance.[1] The core components of the Delphi IDE include a sophisticated code editor supporting syntax highlighting, auto-completion, and refactoring tools to streamline coding tasks; a visual form designer that allows drag-and-drop placement of components for intuitive UI development; an integrated debugger with features such as breakpoints, step-through execution, and variable watches for effective troubleshooting; and a built-in compiler that translates Object Pascal source code into native machine code.[8][9] These elements work together to facilitate a seamless workflow from design to deployment.[1] Object Pascal, the foundational language of Delphi, extends the structured programming paradigm of classic Pascal with robust object-oriented features, including classes for encapsulation and inheritance, and interfaces for polymorphism and contract-based design.[9] It incorporates strong static typing to enforce type safety at compile time, reducing runtime errors, and provides exception handling mechanisms to manage errors gracefully through try-except blocks.[9] Memory management is handled automatically via reference counting for types like interfaces, strings, and dynamic arrays, which increments and decrements counters to deallocate resources when no longer referenced, though manual management is required for most objects.[10] Later enhancements include generics for type-safe reusable code collections, introduced in Delphi 2009, and anonymous methods for inline procedure or function definitions without named declarations, also added in Delphi 2009.[11] A typical Object Pascal program follows a modular unit structure, starting with aprogram or unit declaration, followed by a uses clause to import dependencies, a var section for declaring variables and types, and the executable code within a begin...end. block, promoting organized and maintainable code.[9]
Delphi evolved from Borland's Turbo Pascal compiler of the 1980s, incorporating visual development capabilities and advanced object-oriented extensions to meet the demands of graphical application building.[12]
Editions and licensing
Delphi is available in four main editions—Community, Professional, Enterprise, and Architect—designed to accommodate varying development needs from individual learning to large-scale enterprise projects. These editions differ primarily in feature sets, platform support depth, and included tools, with higher tiers building on the capabilities of lower ones. The Community Edition serves as an entry point, offering essential functionality at no cost, while paid editions provide expanded tools for commercial and collaborative use. The following table summarizes the key differences among the editions:| Edition | Key Features | Limitations | Target Users |
|---|---|---|---|
| Community | Core IDE with visual designers, debugger, code editor, VCL/FireMonkey frameworks; support for Windows, macOS, iOS, Android; limited runtime library source code access. | Restricted to <5 developers and <$5,000 annual revenue; no advanced database drivers, team collaboration, or enterprise testing tools; one-year license term requiring renewal. | Individuals, students, startups, hobbyists for non-commercial or low-revenue projects. |
| Professional | All Community features plus full database connectivity (e.g., FireDAC for local/ODBC databases), team features (version control, code review), and broader runtime library access. | Lacks Linux targeting, advanced testing, and modeling; no InterBase deployment. | Professional developers focusing on desktop apps and database-driven solutions. |
| Enterprise | All Professional features plus Linux targeting, advanced testing (App Analytics, profiling), RAD Server for multi-device apps, and InterBase ToGo test deployment. | No UML modeling or enterprise architecture tools; limited to single-site RAD Server. | Teams building cross-platform mobile, web, and client-server applications. |
| Architect | All Enterprise features plus UML modeling (Enterprise Architect tool), full RAD Server multi-site deployment, Sencha Ext JS Professional license, and embeddable InterBase database. | Highest cost; requires subscription for ongoing updates. | Large enterprises needing system architecture, modeling, and scalable deployments. |
Core Features
Key characteristics
Delphi excels in rapid prototyping through its Visual Component Library (VCL) for Windows-native applications and FireMonkey (FMX) framework for cross-platform development, allowing developers to design graphical user interfaces visually by dragging and dropping components onto forms without writing extensive manual code.[2] This approach streamlines the creation of responsive UIs, enabling quick iteration from prototype to production.[1] The software's performance is driven by its compilation to native machine code, producing fast, standalone executables without the overhead of a virtual machine or interpreter, which contrasts with managed languages like Java or C#.[2] Optimizations such as support for inline assembly allow fine-tuned control over low-level operations, enhancing speed in performance-critical sections like algorithms or graphics rendering.[13] Productivity is bolstered by core tools including the component palette, which provides a drag-and-drop interface for reusable controls, the property inspector for real-time editing of object properties, and an event-driven programming model in Object Pascal that simplifies handling user interactions through predefined events.[2] These features reduce boilerplate code and accelerate development cycles. Security is integrated via Object Pascal's emphasis on secure coding practices, such as strong typing and automatic memory management, which contribute to its recognition as a memory-safe language that mitigates common vulnerabilities like buffer overflows.[14] Additionally, Delphi supports encryption libraries like CryptoLib4Pascal for implementing symmetric and asymmetric cryptography, enabling secure data handling in applications.[15] Developer ergonomics are enhanced by built-in refactoring tools for operations like method extraction and renaming, code insight for intelligent autocompletion and error detection during editing, and seamless integration with version control systems such as Git directly within the IDE. As of RAD Studio 13 Florence (released September 2025), the IDE now supports a 64-bit architecture on Windows, improving performance, stability, and compatibility with large projects and modern hardware.[16][17][18][3] In comparison to scripting languages like Python, Delphi prioritizes compiled safety and type checking to prevent runtime errors, offering the low-level access and performance akin to C++ while providing higher-level abstractions through its object-oriented syntax and visual tools.[19][14]Visual development tools
Delphi's visual development tools center on a rapid application development (RAD) workflow that integrates design, coding, debugging, and deployment within a single integrated development environment (IDE). The Form Designer serves as the primary interface for constructing user interfaces, enabling developers to visually lay out application forms without writing initial code. This tool supports drag-and-drop placement of components such as buttons, grids, labels, and toolbars from the Tool Palette onto the form surface, facilitating quick prototyping of visual elements.[20] Alignment tools, accessible via the component's context menu under the "Position" submenu, allow precise adjustment of component sizes, scales, and alignments relative to the form or other elements. For responsive layouts, anchoring mechanisms—such as guidelines and margins in FireMonkey or Quick-Design options in VCL—ensure components adapt dynamically to form resizing.[20] Event handling is seamlessly integrated into the design process, allowing developers to link user interface actions directly to code procedures. By double-clicking a component in the Form Designer or selecting an event on the Events tab of the Object Inspector, the IDE automatically generates a skeleton event handler procedure in the Code Editor and navigates to it for implementation. This feature streamlines the connection between UI interactions, such as button clicks, and corresponding logic written in Object Pascal syntax.[20][21] The integrated debugger enhances the design-debug cycle by providing robust tools for troubleshooting during development. It supports step-through execution to trace code line by line, variable inspection to monitor values in real-time, and call stack viewing to understand execution flow. Developers can set conditional breakpoints to pause execution based on specific criteria and debug multi-threaded applications to identify concurrency issues. In RAD Studio 13 Florence (released September 2025), the LLDB debugger has been updated to version 20, further improving support for modern debugging scenarios, particularly in 64-bit environments. These features operate within the IDE, allowing seamless switching between visual design and code analysis without external tools.[22][23][3] Project management tools organize complex applications efficiently, supporting multi-project workspaces that group related projects and units for collaborative development. As of RAD Studio 13 Florence (2025), enhanced search functionality has been added to the Project Manager, Structure View, Message pane, and Events log for faster navigation. Build configurations, managed via the Configuration Manager, enable switching between debug and release modes to optimize compilation settings, such as including debug symbols or optimizing for performance. Deployment packaging simplifies distribution by bundling executables, resources, and dependencies into installers or standalone files.[22][24][3] A typical workflow begins with creating a new form in the Form Designer, dragging a button component onto it, and double-clicking the button to generate its OnClick event handler. In the Code Editor, the developer implements the logic, such as displaying a message. For a "Hello World" example, the event procedure might be written as:procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hello World');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hello World');
end;
