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.
- SendMessage
- PostMessage
- Perform
Receiving Messages
The tables are turned here and we look into the mechanisms
in place for receive messages for custom processing:
- Message handlers
- Window procedure methods
Non-standard VCL messages and their
raîson d'être:
- Component notifications for modifying normal Windows
notification message behaviour
- Component messages for VCL custom mechanics
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:
- LoadModule
- WinExec
- ShellExecute
Win32 preferred approaches:
- CreateProcess
- ShellExecuteEx
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.
Experts
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.
Packages
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?
COM
There is a lot of intrigue surrounding this acronym that
needs to be dispelled. COM is quite sensible once you
understand it.
Interfaces
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:
- Text files
- Binary files
- File sharing
- File streams