Embarcadero Delphi Developer Certification Practice Exam
Practice across all eleven knowledge areas of the Delphi Certified Developer exam — from Object Pascal fundamentals, classes, and interfaces to generics, database concepts, memory management, and exception handling. Get immediate feedback in Learn mode and a full 60-minute simulation in Exam mode that mirrors the real 80%-to-pass test. Start with a 24-hour free trial.
Start 24-hour free trial →Exam at a glance
- Exam
- Delphi Certified Developer (Embarcadero)
- Format
- Multiple choice, online, un-proctored via Embarcadero Academy
- Questions
- 60, randomly drawn from 11 subject pools, all equally weighted
- Time limit
- 60 minutes
- Passing score
- 80% or greater (48 of 60) — officially published by Embarcadero
- Cost
- $59 USD single exam (plus VAT); a $99 premium package adds a practice exam and one re-take
- Re-takes
- Discounted re-take available if you do not pass
- Prerequisites
- None; about 2 years of Delphi experience recommended
- Validity
- 2 years; discounted re-certification afterward
- Credential
- Certified Delphi Developer certificate and logo
Source: Embarcadero Academy — Delphi Developer Certification Exam · Embarcadero — Delphi Certified Developer
About this certification
The Delphi Certified Developer credential from Embarcadero validates your general knowledge of Delphi and Object Pascal programming. It tests language syntax, programming techniques, using the RAD Studio / Delphi IDE, and database development — the everyday skills of a working Delphi developer building native applications. The exam consists of 60 multiple-choice questions drawn at random from eleven subject pools, so no two sittings are identical, and every question counts equally toward your score.
It is an online, un-proctored exam taken through the Embarcadero Academy portal: after enrolling you receive a start code, and once you begin you have 60 minutes. Embarcadero recommends roughly two years of hands-on Delphi experience, and the official study guide is included with enrollment. For foundational reading on how vendor certifications fit alongside formal education, see Certifications vs. College Degrees in the Learning Hub.
Exam knowledge areas
The exam draws its 60 questions from eleven subject pools. Embarcadero does not publish a fixed percentage weight per area, and all questions are weighted equally, so the areas below are listed as the official knowledge areas rather than with domain percentages.
Core Object Pascal language syntax, program structure, units, and the basics every Delphi developer relies on.
Delphi’s type system — ordinal, real, string, array, record, and set types — plus variable scope and typed constants.
Declaring and calling routines, parameter passing (value, var, const, out), overloading, and default parameters.
Object-oriented Delphi — class declarations, constructors and destructors, inheritance, visibility, properties, and methods.
Declaring and implementing interfaces, interface references, GUIDs, and reference-counted interface lifetime.
Modern Delphi language features — generic types and methods, custom attributes, and anonymous methods/closures (fundamentals expected).
General database and data-access fundamentals in Delphi — datasets, connectivity, and common data-access patterns.
The runtime library’s standard routines and input/output — file handling, text and typed files, and common RTL functions.
Building and using units, DLLs, and Delphi packages (fundamentals expected for this area).
How Delphi manages memory — object lifetime, freeing objects, ownership, and avoiding leaks.
Structured exception handling with try/except and try/finally, raising and re-raising exceptions, and using assertions.
Who this exam is for
This credential fits Delphi and Object Pascal developers who build native Windows and cross-platform applications with RAD Studio and want a recognized way to validate their skills. There are no formal prerequisites — anyone can enroll — but Embarcadero recommends about two years of hands-on Delphi experience, since the exam covers the breadth of the language including object-oriented programming, interfaces, generics, and database work.
If you already have several years of Delphi experience and want to demonstrate advanced, architecture-level expertise, the Delphi Certified Master Developer exam is the more demanding next step. For how a developer credential maps to roles and pay, see the Career Hub, and for adjacent engineering paths, the Data Engineer and AI Engineer role guides.
What this practice exam delivers
Learn mode
Answer one question at a time with the explanation revealed immediately — ideal for working through Object Pascal syntax, class and interface behavior, and the tricky generics and memory questions one concept at a time.
Exam mode
60 questions against a 60-minute timer, mirroring the real test — including the 80%-to-pass bar — so you build the pacing the one-minute-per-question format demands.
Source-linked explanations
Every answer cites the Delphi / RAD Studio documentation it derives from — the language reference, RTL, and database docs — so you can verify the reasoning and dig deeper.
Score by knowledge area
Results break down across all eleven areas, so practice tells you exactly which topic — interfaces, generics, memory management, database — to study next.
Sample practice questions
Ten free questions spanning the eleven knowledge areas, each with a full explanation of why the other answers are wrong. The complete bank is available with the 24-hour trial.
In Object Pascal, which operator is used for assignment, and which is used for equality comparison?
- = for assignment, == for comparison
- := for assignment, = for comparison
- == for assignment, = for comparison
- = for both
Show answer & explanation
Correct: B. Object Pascal uses := for assignment and a single = for equality comparison — a defining syntax difference from C-family languages.
Why not the others: == is not a Delphi operator (A, C); using = for assignment (D) is invalid in Pascal. The := / = split is fundamental.
Which Delphi type is a reference-counted, dynamically allocated string that is the default string type in modern Delphi?
- ShortString
- UnicodeString
- PChar
- array[0..255] of Char
Show answer & explanation
Correct: B — UnicodeString. In modern Delphi the default string is UnicodeString: a reference-counted, dynamically allocated, copy-on-write Unicode string.
Why not the others: ShortString (A) is a legacy fixed-length (max 255) non-reference-counted type; PChar (C) is a pointer to a null-terminated char buffer, not managed; a fixed Char array (D) is static, not a managed string. UnicodeString is the default.
A routine declares a parameter as var x: Integer. What does this mean for the caller?
- The argument is passed by value; changes inside the routine do not affect the caller
- The argument is passed by reference; changes inside the routine are reflected in the caller’s variable
- The parameter is read-only and cannot be modified
- The parameter must be a constant expression
Show answer & explanation
Correct: B. A var parameter is passed by reference, so the routine operates on the caller’s actual variable and any change persists after the call returns.
Why not the others: pass-by-value (A) describes a plain value parameter; read-only (C) describes const; requiring a constant expression (D) is not what var means. var = by reference.
Which class members in a Delphi class declaration are accessible only from code in the same unit, even when declared in a class’s interface?
- public
- published
- private and (effectively) protected within the same unit
- automated
Show answer & explanation
Correct: C. private members are visible only within the same unit, and within that unit protected members are also accessible — Delphi’s visibility is unit-based, which is why "friend" access works inside one unit.
Why not the others: public (A) is accessible everywhere; published (B) is like public but also generates RTTI; automated (D) is a legacy Automation-object specifier. The same-unit rule applies to private/protected.
When a class derives from TInterfacedObject and you hold the object solely through an interface variable, how is the object’s lifetime managed?
- You must always call Free manually, as with any TObject
- It is automatically reference-counted; when the last interface reference goes out of scope, the object is freed
- It is never freed and leaks by design
- It is freed immediately after the first method call
Show answer & explanation
Correct: B. TInterfacedObject implements reference counting via _AddRef/_Release. When held through interface references, the object is freed automatically once the last reference is released — so you do not call Free manually.
Why not the others: manual Free (A) is for plain objects not held by interface; it does not leak (C); and it is not freed after one call (D). Interface reference counting governs lifetime here.
Source: Embarcadero — Delphi (object interfaces) → Further reading: PowerKram Career Hub →Which declaration correctly defines a generic list-like class holding elements of an arbitrary type T?
- type TMyList = class of T;
- type TMyList<T> = class ... end;
- type TMyList = class<T> ... end;
- type TMyList = generic class T;
Show answer & explanation
Correct: B. Delphi generics put the type parameter in angle brackets after the type name: TMyList<T> = class ... end;. You then instantiate it as e.g. TMyList<Integer>.
Why not the others: class of T (A) is a metaclass reference, not a generic; the bracket placement in C and the generic class wording in D are not valid Delphi syntax. The name<T> form is correct.
In Delphi’s data-access model, which component type acts as the in-memory representation of a set of records that visual controls bind to?
- A TButton
- A TDataSet descendant (e.g. a query or table dataset)
- A TForm
- A TTimer
Show answer & explanation
Correct: B — a TDataSet descendant. Datasets (such as query or table components) represent the set of records in memory; data-aware controls connect to them, typically via a TDataSource, to display and edit data.
Why not the others: TButton (A), TForm (C), and TTimer (D) are UI/utility components with no role as a record container. The dataset is the data abstraction.
Source: Embarcadero — RAD Studio (datasets & data access) →Which standard Delphi function returns the number of characters in a string?
- Count(s)
- Length(s)
- Size(s)
- Len(s)
Show answer & explanation
Correct: B — Length(s). The RTL function Length returns the number of elements in a string or array — for a string, its character count.
Why not the others: Count (A) is a property on container classes, not a string RTL function; Size (C) and Len (D) are not the Delphi standard routines for this. Length is correct.
You create a plain object: obj := TMyObject.Create; on a platform using the classic manual model. What is the correct way to ensure it is freed even if an exception occurs?
- Do nothing; the object frees itself automatically
- Wrap usage in try ... finally obj.Free; end;
- Call obj.Destroy directly instead of Free
- Set obj := nil; which frees the memory
Show answer & explanation
Correct: B. The idiomatic pattern is try the work, then finally obj.Free; end; — the finally block runs whether or not an exception is raised, guaranteeing the object is released. Free safely calls the destructor only if the reference is non-nil.
Why not the others: a plain object is not auto-freed (A); calling Destroy directly (C) is unsafe on a nil reference and bypasses the Free guard; assigning nil (D) just drops the reference and leaks the object. try/finally + Free is correct.
Which construct guarantees that cleanup code runs whether or not an exception is raised in the protected block?
- try ... except ... end;
- try ... finally ... end;
- if ... then ... else ...;
- case ... of ... end;
Show answer & explanation
Correct: B — try ... finally. The finally block always executes, exception or not, which is exactly what you want for guaranteed cleanup (freeing objects, closing files). try ... except handles exceptions but does not guarantee cleanup on the success path.
Why not the others: try...except (A) catches and handles exceptions rather than guaranteeing cleanup; if (C) and case (D) are ordinary control flow with no exception semantics. Use try/finally for cleanup, try/except to handle.
Keep going: Learning & Career resources
This certification pays off fastest when it sits on top of real Delphi skills and a clear sense of where the credential leads. Two PowerKram hubs back this exam up.
Deep dive: exam structure, scoring, study path & recertification
Exam structure and how it’s scored
The Delphi Certified Developer exam is 60 multiple-choice questions in 60 minutes, drawn at random from eleven subject pools so no two exams are the same. All questions are weighted equally, and the passing score is 80% or greater — that is 48 of 60 correct, and unlike many vendors Embarcadero publishes this threshold openly. The exam is taken online and un-proctored through the Embarcadero Academy portal using a one-time start code. Read more in the Learning Hub →
What the eleven areas actually test
The areas span the breadth of Object Pascal: language fundamentals; data types, variables, and constants; procedures and functions; classes and objects; object interfaces; generics, attributes, and anonymous methods; database concepts; standard routines and I/O; libraries and packages; memory management; and exceptions and assertions. The official study guide notes that more advanced areas such as libraries/packages and generics/attributes/anonymous methods are tested at a fundamental level — you need an elementary working understanding rather than deep mastery of those specific topics. Certifications vs. College Degrees →
Realistic study path
Embarcadero recommends roughly two years of hands-on Delphi experience. A practical plan: work through the official Delphi Developer study guide (included with enrollment), then reinforce each area with real coding in RAD Studio — write classes and interfaces, use generics and anonymous methods, build a small data-aware form, and practice try/finally cleanup and exception handling. Time-box practice at about one minute per question to match the 60-in-60 format, and target comfortably above 80% on practice tests before sitting the exam. Career Hub →
Cost, enrollment, and delivery
A single exam is $59 USD plus VAT where required; a $99 premium package adds a practice exam and one re-take. Discounted re-takes are offered if you do not pass on the first attempt. After enrolling at Embarcadero Academy you receive a start code by email and can take the test whenever you are ready; once started, you have 60 minutes. Verify current pricing and enrollment details on Embarcadero’s official pages before purchasing. Embarcadero Academy — official exam page →
Recertification
The certification is valid for two years from the date of the exam. After it expires, Embarcadero offers discounted re-certification exams to refresh your credential. Because the certification reflects a snapshot of your Delphi knowledge, recertifying keeps it current as you continue to work with newer RAD Studio releases. Learning Hub →
Career outlook
Delphi remains in active use across enterprise desktop, client/server, and line-of-business applications, and certified developers can use the credential and logo to signal validated Object Pascal skills to employers. It pairs well with broader software-engineering and data roles. For role-by-role context and salary ranges, see the Career Hub. Career Hub — Data Engineer →
Frequently asked questions
What is the passing score for the Delphi Developer exam?
The passing score is 80% or greater — that is 48 of the 60 questions correct. Embarcadero publishes this threshold openly, so it is a firm, official target rather than an estimate. All questions are weighted equally, so every correct answer counts the same toward your score.
How many questions are on the exam and how long is it?
The exam has 60 multiple-choice questions and a 60-minute time limit, so plan for about one minute per question. The questions are drawn at random from eleven subject pools, which means no two sittings are identical — you need consistent coverage across all eleven areas rather than deep knowledge of just a few.
Which topics does the exam cover?
Eleven knowledge areas: Delphi Fundamentals; Data Types, Variables, and Constants; Procedures and Functions; Classes and Objects; Object Interfaces; Generics, Attributes and Anonymous Methods; Database Concepts; Standard Routines and I/O; Libraries and Packages; Memory Management; and Exceptions and Assertions. Embarcadero does not publish a percentage weight per area — questions are pulled evenly from all eleven pools.
Do I need experience or prerequisites to take it?
There are no formal prerequisites, so anyone can enroll. Embarcadero recommends about two years of hands-on Delphi experience, because the exam covers the full breadth of Object Pascal including object-oriented programming, interfaces, generics, and database work. The official study guide is included with enrollment to help you fill gaps.
How much does it cost and is it proctored?
A single exam is $59 USD (plus VAT where applicable); a $99 premium package adds a practice exam and one re-take, and discounted re-takes are available if you do not pass. The exam is taken online and is un-proctored through the Embarcadero Academy portal — after enrolling you receive a start code and have 60 minutes once you begin.
How does this differ from the Delphi Master Developer certification?
The Delphi Certified Developer exam tests general Delphi knowledge and recommends about two years of experience. The Master Developer exam is more advanced — it covers architecture, components, and building desktop, client/server, internet, and multi-tier applications, with around four years of experience recommended, and is moderated rather than fully self-service. Start with the Developer credential and progress to Master as your experience grows.
Start your free 24-hour practice trial
Full access to the question bank, both study modes, and scoring across all eleven knowledge areas. No credit card required.
Start free trial →