D103
- Delphi Part III - Object Oriented Programming
Price:
US $1,995, UK £1,499 + VAT | Duration: 5 days

This
course is designed for Delphi programmers & IT managers managing
Delphi programmers using any version of Delphi.

Minimum
of 6 months experience using Delphi.
Our Delphi Fundamentals course also provides a solid foundation
for this course.

Students will
learn the correct way to apply object oriented programming principles
to the development of Delphi applications. Students learn how
to develop generic forms, objects and components, which they can
reuse in multiple applications, saving development time, increasing
program reliability, and improving maintainability. Students will
be more productive after completing this class. They will learn
how to develop Delphi applications in less time, and which are
more reliable, consistent, and maintainable. Although the class
100% targets Delphi, the general principles taught here are equally
applicable to other object oriented languages.

Create
Delphi classes & components which you can reuse in multiple
applications. Real classes - such as database maintenance forms
& query builders - the backbone of database applications
Design
class hierarchies which are stable, robust, & extensible
Create
components from scratch and also extend existing components
which come with Delphi
Learn
from design decisions made in the VCL
Create
real business objects - such as customers & invoices
Place
class wrappers around database tables to minimize the impact
of database structure & business logic changes
D301
- Delphi Power Programming
D601 - Delphi
Multi-tier Development
D401 - Web App.
Development w/Delphi 5
D501 - Delphi
Database Development
D701
- Delphi 6 Adv. Web Development
Principles
of Object Oriented Programming
Classes
& Objects defined | Why OOP is better than structured/procedural
programming | Rules on what makes a good OOP design | What makes
a good class? | Telling a good class design from a bad one | Interface
vs. implementation
UML
Basics
What is UML & why use it? | How to read a UML class drawing
(classes, methods, properties, events, scoping, inheritance/encapsulation)
Delphi
Syntax
Using predefined classes
Objects
& Classes - what's the difference? | Declaring objects | Using
Try/Finally to prevent memory leaks | Instantiating classes |
Using properties & methods | TStringList in detail | TInifile
& TRegistry|
Hooking events in code
Defining your own classes
Class
design basics | Classes are types | Using properties | Declaring
& implementing methods | Method & instance variable scope | Constructors
& destructors
Using OOP to solve common development problems
User security | Recovering from database errors | Loading forms
| Printing or previewing reports | Restoring forms when application
starts
Using
Visual Form Inheritance
Understanding the Delphi generated code | Using the repository
| Removing duplicate code from forms | Building reusable form
hierarchies | Automating database maintenance forms
Building
More Advanced Objects
Inheritance | Encapsulation | Polymorphism | Virtual, Dynamic,
Override, Abstract | Composite classes | Friend classes | Copying
objects
Component
Writing
Tour of the VCL | Writing classes which work within the IDE
| Using Delphi 5 frames to visually build composite components
| Wrappers around dialog boxes | Extending VCL components | Data
aware components | Implementing custom events
Creating
Business Objects
Using class wrappers around database classes | Create data
aware business objects | Implementing business logic as custom
events

Using
visual form inheritance to reduce development time and create
consistent and reliable user interfaces
Create
a generic database form which allows users to add / edit / delete
records etc. which works with any database
Create
a generic query builder to be used as a front end to reports
and ad-hoc browse screens
Create
components from scratch which can be used within the Delphi
IDE
Create
components based upon existing VCL components
Develop
real business objects with custom events
Create
classes which can be used in any project