Language reference
Object Pascal's most durable home, with a small and loyal audience still shipping products on it.
Delphi's roots go back to Borland's Turbo Pascal, first released in 1983, which added object-oriented extensions later named Object Pascal, designed by Anders Hejlsberg (who went on to design C# at Microsoft). Delphi 1 launched on February 14, 1995, at the Software Development Conference, turning Object Pascal into a full rapid application development environment for Windows: the Visual Component Library (VCL) for visual UI design, the Borland Database Engine for data access, and native compilation to a standalone executable with no separate runtime needed.
Delphi's core bet was that a compiled, statically typed language could still deliver the drag-and-drop productivity that interpreted and scripting tools of the era were becoming known for. The VCL made that possible: a visual designer generated real Object Pascal code you could read and edit directly, rather than hiding it behind a black box, and the compiler produced a genuine native Windows executable with none of the deployment dependencies competing tools of the time carried.
1983 · Turbo Pascal
Borland's original Pascal compiler for MS-DOS, the direct ancestor of Object Pascal.
1995 · Delphi 1
Launched February 14 for 16-bit Windows 3.1, with the VCL and Borland Database Engine.
1996 · Delphi 2
Adds 32-bit Windows 95 support, long strings, and visual form inheritance.
1997 · Delphi 3
Adds COM-based interfaces, Code Insight completion, WebBroker, and component packages.
2007 · RAD Studio
Delphi and C++Builder begin shipping jointly as RAD Studio.
2011 · FireMonkey (FMX)
Cross-platform UI framework introduced in Delphi XE2, alongside the existing Windows-only VCL.
2015 · Idera ownership
Idera acquires Embarcadero Technologies, and has released Delphi since.
2025 · RAD Studio 13 Florence
Released September 10, the current stable release.
#9 on TIOBE, 1.98%
Delphi/Object Pascal's position and share on the TIOBE programming language popularity index in January 2026, back in the top 10 after briefly slipping out in December.
TechRepublic: TIOBE January 2026South African schools, since 2016
Delphi was named the language of choice for teaching programming as part of Information Technology coursework in South African schools starting in 2016.
Wikipedia: Delphi (software)Delphi / Object Pascal history and figures compiled from public sources, cited above. Corrections welcome.
The program divided an integer value by zero.
Add an explicit check for a zero divisor before the division, or catch EDivByZero in a try-except block if the operation is expected to fail occasionally on untrusted input.
A value was assigned that falls outside the declared range of its type, most often an array index or an ordinal type with a restricted range, and range checking ($R+) was enabled when the assignment happened.
Check the value against the type's declared bounds before the assignment. Range checking is a compile-time switch; if it is off in release builds, the same bad value will not raise this error there, it will simply corrupt memory instead, which is worse, so treat this as a bug to fix, not a check to disable.
The call stack exceeded its allocated size, almost always from unbounded or runaway recursion.
Check the recursive function involved for a base case that is not actually being reached, and confirm the recursion depth is bounded by something under the program's control, not by external input.
A memory allocation request could not be satisfied because the heap or the address space available to the process was exhausted.
Check for a leak, most commonly an object created and never freed inside a loop, before assuming the machine simply needs more memory. A genuine one-time large allocation failing is far less common in practice than a slow leak that eventually exhausts what is available.
Yes. Delphi (Object Pascal) sits around 9th place on the TIOBE index as of early 2026, and Idera/Embarcadero continues shipping current releases, including RAD Studio 13 in September 2025.
EAccessViolation (runtime error 216) is the most reported Delphi crash, usually from a nil pointer dereference or, less obviously, reentrancy caused by calling Application.ProcessMessages inside an event handler.
Delphi compiles to a genuine native executable with no separate runtime, the same property that made it attractive for legitimate software, which also makes some malware harder for detection tools to fingerprint.
Delphi 1 launched on February 14, 1995, at the Software Development Conference in San Francisco, with an estimated 3,000 to 5,000 developers attending the event. It grew out of Borland's Turbo Pascal, first released November 20, 1983, and its Object Pascal extensions were designed by Anders Hejlsberg, who later went on to design C# at Microsoft.
VCL (Visual Component Library) is Delphi's original, Windows-only UI framework, dating back to Delphi 1. FireMonkey (FMX) is the cross-platform alternative Embarcadero has shipped alongside it since Delphi XE2 in 2011; it targets Windows, macOS, iOS, and Android from one codebase and traces its roots to VGScene, a rendering engine originally built by KSDev in Russia before Embarcadero acquired and rebuilt it.
Total Commander, the long-running Windows file manager built by Christian Ghisler, has used Delphi since its 1990s debut as Windows Commander and still does for its 32-bit Windows build. Skype's original client interface, before later corporate rewrites, was also built in Delphi.
No, Delphi and RAD Studio are commercial products sold by Embarcadero (owned by Idera). Developers who want an open-source Object Pascal toolchain instead typically use the Free Pascal Compiler (FPC) with the Lazarus IDE, a separate but closely related implementation of the same language.
Yes. Embarcadero maintains python4delphi and related projects like DelphiFMX4Python and DelphiVCL4Python as open GitHub repositories, letting Python code drive a native FireMonkey or VCL interface directly. FireMonkey itself gained an official Python integration in 2021.
Real questions from public forum threads, with credit to who asked and who answered. Our answer restates the fix and links to the matching reference page where one exists.
My application throws random access violations in a DBGrid with user-typed filters and fast lookups. What could cause something this intermittent?
Asked by stephenwales on Tek-Tips forum, 2005, still commonly linked
“Calling Application.ProcessMessages inside an OnChanged event handler processes the pending message queue immediately, including further OnChanged events, so fast typing lets the same event fire again before the first call has finished. The two overlapping calls corrupt shared state and crash.”
whosrdaddy
Intermittent access violations that seem to depend on typing speed or timing are the classic signature of reentrancy, not memory corruption from a single bad pointer. If ProcessMessages appears anywhere inside an event handler that could plausibly fire again while the first call is still running, that is the first thing to remove, not the last.
Full reference page →I get an intermittent range check error on a SendMessage call, about 2 out of 3 times. What would make it random like that?
Asked by bobbie100 on Tek-Tips forum, ongoing thread
“The bitmap handle (hBmp) wasn't being created successfully on every attempt, and the code used it anyway without checking. Add a check that the handle is actually valid (not nil) before using it, wrap the resource operations in try-finally, and release every handle (ReleaseDC, DeleteObject) regardless of whether the operation succeeded.”
BillDoorNZ
Randomness like this almost always means a resource that fails to initialize some fraction of the time, not a logic bug that would fail consistently. Before assuming range checking itself is wrong, check whether every handle or object involved is actually validated before use, since an intermittent failure upstream is a classic way to get an intermittent-looking crash downstream.
Full reference page →Compilers & platforms
Disambiguation across vendors.
Modernization guides
Cost, timeline, migration paths.
Vendors
Modernization consultancy comparison.
Migration checklist
What to check before or after a compiler move.
Salary & rate benchmark
What Delphi work actually pays.
Vendor match
Two questions to the right vendor.