Delphi – Level 2

Day(s): 2

1.-2. nov/Herlev


DKK 7.995

Delphi has been around as a tool since February 1995. It is a widely used development IDE with the base language of Object Pascal. Today 21 years later we have version 22 of the product named Delphi 10 Seattle. The IDE and language integrated with the debugger makes it very easy to develop large scaled robust desktop applications, as well as applications for mobile devices. This course has focus on desktop application development for both Windows and Mac OSX.


This 2 day course will take you further into the depths of the Delphi/Pascal programming language. By utilizing the newly added framework Firemonkey you will learn how to program and build an application that will compile for both Mac and Windows. As well as get a deeper knowledge of the Pascal language and its capabilities.

  • Introduction to the Firemonkey framework
  • How to obtain and install 3rd party components
  • Add target platforms such as Windows 32, Windows 64 and Mac OSX
  • Introduction to some more advanced datastructures like generics.

The major objective to the course is to give you enough knowledge and hands-on experience to be able to build object oriented programs with some advanced features and get the applications running on Mac as well as Windows using the same codebase.


This training is aimed at programmers who want to get a thorough and sound introduction to some advanced areas of Delphi and programming in Delphi.

Previous knowledge

The course requires at least some experience in Delphi. You must be able to build an object oriented application. Please see course “Delphi – Level 1”

Practical Exercises

Throughout the course there will be a mix of theoretical teaching (projector and whiteboard) and practical exercises, with as much hands-on as possible.


Course outline


The session on the Firemonkey framework will be a quick introduction to what is the Firemonkey Framework, and why does it exist. We will see an example of how we can get a program to run on:

  • Mac OSX
  • Windows 32 bit
  • Windows 64 bit
  • Android mobile platform
  • iOS mobile platform.

Note, this course does not cover mobile development per se, but we will see the steps to make the same app(lication) run on all the above platforms.


We will look at various container types in Delphi, generics and anonymous methods

  • TObjectList<T>
  • TQueue<T>
  • TStack<T>
  • TDictionary<T>

Searching for items in TObjectList<T> with binarysearch. Specifically searching for objects using binary search.


We will in this session take a look at what Run Time Type Information is. RTTI is exactly what the name implies. Its information of any given type at runtime. As a developer you are able to read, and even modify, information about types and classes. We’ll take a look at this as well as how to add information to your own classes using Attributes.


Introduction to Frames and how we can use them.

  • Creating a frame at design time
  • Create a constructor and a destructor for the frame
  • Use the created frame at runtime

Using 3rd part components

It is very common to purchase 3rd party components, to solve specific tasks. In this session we will create our own components, put them in a package, and install them in the IDE. Thus simulating one way of installing 3rd party components.

Extending your own classes to include events

When you build your classes that may or may not turn into components, you may want to have your system react to events on them. In this session you will learn how to extend your classes to include events.


Often we have the desire to kick of a thread, and let the user interface keep working. This has some benefits:

  • The user interface is responsive, even when waiting on an external source like for example a remote database.
  • If we are gathering data from different external sources, there is no point in waiting for resource A to complete before asking resource B.
  • The parallels library introduced in XE7 offers som powerfull ways of handling futures, tasks and parallel for-loops, we'll have a nice discussion on these topics

This session will introduce the concept of multithreading, and show how to use it.

Database application programming advanced

In this section we will very quickly show how to connect to a database. After that we will go a bit deeper in database programming with various techniques:

  • Datasnap – Multitier database applications
  • Build an Object-Relational-Model (ORM) application talking to a database
  • FireDac as connection to databases
  • Use localSQL to query data from a combination of sources. Sources can be two different databases even combined with an xml-file
  • Visual Live binding
  • Cached Updates - We'll take a look at how we can use cached updates to utilise very powerfull techniques to create and revert to savepoints, letting the user review and revert indivdual changes made before applying the updates to the database, and many other cool mechanisms with caching the updates.

When the course is finished you will have a very good understanding of how to use Delphi to build multithreaded applications and talking to multiple databases through a datasnap server. The client in this case can run on Windows, Mac OSX, iOS or Android. Note: This is not a course in mobile development, though a few things will be shown.


Request more information...

Flemming Jensen

phone: +45 44 52 16 60
mobile: +45 24 21 16 60  

Share |