The (Updated) Other Side Of Delphi

This was a UK BUG MasterClass held on 24th March, 1998 in Hammersmith, England.

Click here for the files that accompany this seminar.

This Masterclass looks at some of the non-VCL aspects of Delphi application programming. We look at the Windows API and Windows messages, Delphi experts, Delphi packages, COM and file handling.

The Masterclass runs from 10am until 6pm with the following agenda:

10:00 a.m. Introduction

Looking Through Windows

This section will focus on the Windows API. It will begin with an overview of attempting to tackle the Windows API from the perspective of a Delphi programmer unfamiliar with it, or scared by it.

Sending Messages

Here we investigate the message-based model of Windows and examine the approaches available in the API and natively in Delphi for sending messages around the system.

Receiving Messages

The tables are turned here and we look into the mechanisms in place for receive messages for custom processing:

Non-standard VCL messages and their raîson d'être:

The special case of application window messages, exemplified by enabling a TScrollBar to correctly react to system user interface changes.

11:30-11:45 a.m. Break

Launching Applications

Delphi does not support launching other applications with any cosy VCL routines. It is not necessarily obvious how to deal with the various APIs that help you out so we will look at them here.

Win16 approaches to launching applications:

Win32 preferred approaches:

Waiting For Programs To Terminate

When you launch an application, you sometimes need to be notified when it finishes. This is quite easy in Win32, although there are a few choices to make for smooth operation.

1:00-2:00 p.m. Lunch

Digging Inside Delphi

Here we look at some not so well understood areas of Delphi, often considered the realm of propeller heads. You can wear your propeller with pride after making it through this afternoon.


Not an in-depth analysis of experts by any stretch, but an overview of what they are, how they work and how they are written.


What are these new-fangled things all about?
What's the difference between design-time and run-time packages?
What are the pros and cons?
How do you successfully deploy packages?
What are the implications?
Hopefully these questions and more will be moot by the next section.

Interacting With The Delphi IDE

We're back to packages again here! A nice side effect of package technology gives us an alternative to the much-feared expert interfaces in the Open Tools API.

4:00-4:15 p.m. Break

Run-Time Type Information (RTTI)

What is it? Why is it? What can it do for you?


There is a lot of intrigue surrounding this acronym that needs to be dispelled. COM is quite sensible once you understand it.


Apart from half a unit, an interface is also a key concept in COM. We examine the syntax and the point of interfaces

COM Servers & Clients

How do these work, and why should we bother?

Organised Filing

This section will be included if time permits.

Sometimes a database table is over the top and you just want to store information in a normal disk file. Delphi has complete support for this, but not everyone can find it. We will browse through the support for: