Borland Delphi 4 Application Development

This is typically a five day course, although can be reduced to only the required topics. The content of the course manual is shown below.

If you are interested in having this course delivered at your company, please contact Brian Long.

Delphi 4 Application Development Course Manual Contents

Delphi Overview

Versions Of Delphi

The Borland Database Engine (BDE)

The Environment

The Form Designer
The Object Inspector
The Code Editor
Customising The Environment

Dragging And Docking

Useful Shortcut Keystrokes

General UI Keystrokes
Form Designer Keystrokes
Object Inspector Keystrokes
Editor Keystrokes

Building A User Interface



Making Event Handlers

Naming Conventions

Setting Up The UI

Setting Up The Code

Online Help

Testing The Program

Code Completion
Code Parameters


Menu Templates

Implementing Exit Functionality

An Open Dialog

The Outliner

Exceptions - Don't Panic

Where To Find Help

Types, Constants And Variables

Simple Types

Integer Types
Real Types
String Types

Constants And Variables

Variable Definitions
Constant Definitions

More Complex Types

Structured Types
Pointer Types
Procedural Types
Object References And Class References


Structure Of A Delphi Program

The Project File (.DPR)

Pascal Unit (.PAS)

Moving Projects To Other Locations

Files Generated By A Delphi Project

The Structure Of A Delphi Unit


Comments And Compiler Directives


Compiler Directives

Compiler Switch Directives
Parameter Directives
Conditional Compiler Directives


Procedures And Functions

Overloaded Subroutines

Default Parameter Values

Parameter Passing Conventions

Passing Parameters By Value
Passing Parameters By Reference (var Parameters)
Const Parameters

IDE Facilities

Project Desktops

Object Repository

Form Inheritance

Component Templates

Database Table Access

Database Form Wizard

Tables, Data Sources And Data-Aware Controls

Connecting To SQL Databases

Master-Detail Relationships

Programming With TTable Components

Field Access

Field By Index
Field By Name
Field By Object
Field By Variant

Searching For Data

Incremental Searching



Refreshing Multi-User Applications

Bookmarks And Scanning Records

Calculated Fields


Helping To Preventing Paradox And dBASE Data Loss

Database Queries

Parameterised SQL

Nested Queries


Other Data Access Topics

The TDatabase Component

Customising Login Dialogs For RDBMS Connections
Getting A Value From The User
Formatting Strings Using Templates
Session Aliases

Data Modules

Database Support Tools

Database Explorer

Data Dictionary

Database Desktop

Creating Tables
Query By Example

BDE Administrator

Creating Aliases

Global Object Variables








Custom Mouse Cursors

More User Interface Topics

Propagating Properties

Diverting Tooltips

Multi-Page Dialogs

Automated Ways To Make MPDs
Making An MPD Manually
Parent/Child Relationships

Menu Images Through An ImageList

Actions And Action Lists

Event Handlers By Hand

Events Are Properties

Status Line Hints

Exception Handling

What The Debugger Does By Default

What Are Exceptions?

Looking For An Exception To Handle

Trapping Exceptions With try/except Statements

Differentiating Between Exceptions
Chaining Back To The Old Exception Handler

Raising Exceptions

Dataset Validation Through Exceptions
Creating Custom Exception Types
Silent Exceptions

Disabling The IDE's Interest In Exceptions

Application Level Exception Handling

Trapping Specific BDE Errors

Resource Protection

Exceptions And Resource Leaks

try/finally Statements

The Delegation Model

The Sender Parameter Of Many Event Handlers


Static Typecasting
Dynamic Typecasting, Using The "As" Operator
"Is" And "As" Doing Their Thing
Don't Use "Is" And "As" Together

The Tag Property

Dynamic Object Creation

Creating Component Objects

Component Ownership
Locating A Component's Implementation Unit
Displaying Visual Components
Explicitly Destroying Objects And Components
Component Names
Object Creation Summary

Creating Non-Component Objects

Accessing INI Files With TIniFile
Accessing The Win32 Registry With TRegIniFile

Multi-Form Applications

Showing Other Forms

Modeless Forms, Or Windows
Modal Forms, Or Dialogs

Resource-Friendly Multi-Form Applications

Linked Database Cursors

Graphics Programming

Using A TCanvas Object

Making Canvas Changes Persistent

Block Indenting Code

A Busy Application Looks Hung

Application.ProcessMessages Fixes It

Object Oriented Programming Concepts




Compiler Specifics

Putting It Into Practice

Data Hiding

Private Members Of A Class
Protected Members Of A Class
Public Members Of A Class
Published Members Of A Class

Defining Classes

Code Templates
Abstract Methods
Class Completion
Module Navigation
Implementing Inherited Classes
Instigating Polymorphism
What Polymorphism Means To The Compiler
Building A Test Harness For The Objects
Constructors And Destructors

Object Browser

Looking At The VCL Class Hierarchy

Examining The Contents Of A Class

Finding All References To A Symbol

Tooltip Symbol Insight And Code Browser

Localised Inheritance

Using Delphi's Debugger


Breakpoints With Conditions And Pass Counts

Watch Expressions

Tooltip Expression Evaluation

Debug Inspectors

What If? Scenarios

Program Execution

Call Stack

And Finally...