Start programming using Object Pascal Language
Free Pascal/Lazarus Book
Written by: Motaz Abdel Azeem
23.Apr.2011
Last Modified 30.August.2012
Introduction
This book is written for programmers whom want to learn Object Pascal Language. Also it is suitable as a first programming book for new students and non-programmers.
It illustrates programming techniques as general in addition to Object Pascal Language.
License:
License of this book is Creative Commons.
Chapters:
Language Basics
Structured Programming
GUI
Object Oriented Programing
Contents
Introduction...............................................................................................................................................2
Object Pascal language.............................................................................................................................2
Delphi........................................................................................................................................................2
Free Pascal................................................................................................................................................2
Lazarus......................................................................................................................................................2
Object Pascal features...............................................................................................................................3
Author: Motaz Abdel Azeem......................................................................................................................3
License:......................................................................................................................................................3
Environment for book samples..................................................................................................................3
Using Text mode ........................................................................................................................................4
Chapter One
Language Basics
First Application......................................................................................................................................10
Another examples.....................................................................................................................................12
Variables..................................................................................................................................................14
Sub types..................................................................................................................................................18
Conditional Branching............................................................................................................................19
If condition...............................................................................................................................................19
Air-Condition program:...........................................................................................................................19
Weight program........................................................................................................................................21
Case .. of statement..................................................................................................................................23
Restaurant program.................................................................................................................................23
Restaurant program using If condition....................................................................................................23
Students degree program.........................................................................................................................24
Keyboard program...................................................................................................................................25
Loops........................................................................................................................................................27
For loop...................................................................................................................................................27
Multiplication Table using for loop.........................................................................................................28
Factorial program...................................................................................................................................29
Repeat Until loop.....................................................................................................................................30
Restaurant program using Repeat loop...................................................................................................30
While loop................................................................................................................................................32
Factorial program using while loop........................................................................................................32
Strings......................................................................................................................................................34
Copy function...........................................................................................................................................37
Insert procedure.......................................................................................................................................38
Delete procedure......................................................................................................................................38
Trim function............................................................................................................................................39
StringReplace function.............................................................................................................................40
Arrays......................................................................................................................................................41
Records....................................................................................................................................................44
Files.........................................................................................................................................................46
Text files...................................................................................................................................................47
Reading text file program........................................................................................................................47
Creating and writing into text file............................................................................................................49
Appending to a text file............................................................................................................................52
Add to text file program...........................................................................................................................52
Random access files.................................................................................................................................53
Typed file..................................................................................................................................................53
Storing Students marks program.............................................................................................................53
Reading student marks.............................................................................................................................54
Appending student marks program..........................................................................................................55
Create and append student marks program.............................................................................................56
Cars database program...........................................................................................................................57
Files copy.................................................................................................................................................59
Copy files using file of byte......................................................................................................................59
Untyped files............................................................................................................................................61
Copy files using untyped files program...................................................................................................61
Display file contents program..................................................................................................................63
Date and Time..........................................................................................................................................65
Date/time comparison..............................................................................................................................67
News recorder program...........................................................................................................................68
Constants.................................................................................................................................................70
Fuel Consumption program.....................................................................................................................70
Ordinal types............................................................................................................................................72
Sets...........................................................................................................................................................74
Exception handling..................................................................................................................................76
Try except statement................................................................................................................................76
Try finally.................................................................................................................................................77
Raise an exception..................................................................................................................................78
Chapter Two
Structured Programming
Introduction.............................................................................................................................................81
Procedures...............................................................................................................................................81
Parameters...............................................................................................................................................82
Restaurant program using procedures.....................................................................................................82
Functions.................................................................................................................................................84
Restaurant program using functions........................................................................................................85
Local Variables........................................................................................................................................86
News database application......................................................................................................................87
Function as an input parameter..............................................................................................................90
Procedures and functions output parameters..........................................................................................91
Calling by reference.................................................................................................................................92
Units.........................................................................................................................................................94
Units in Lazarus and Free Pascal...........................................................................................................96
Units written by programmer..................................................................................................................96
Hejri Calendar.........................................................................................................................................97
Procedure and function Overloading....................................................................................................100
Default value parameters......................................................................................................................101
Sorting....................................................................................................................................................102
Bubble sort algorithm............................................................................................................................102
Sorting students marks...........................................................................................................................104
Selection Sort algorithm........................................................................................................................106
Shell sort algorithm...............................................................................................................................107
Strings sorting........................................................................................................................................109
Sorting students name program.............................................................................................................109
Sort algorithms comparison...................................................................................................................110
Chapter Three
Graphical User Interface
Introduction............................................................................................................................................115
First GUI application.............................................................................................................................115
Second GUI application........................................................................................................................120
ListBox application................................................................................................................................122
Text Editor Application..........................................................................................................................123
News Application...................................................................................................................................125
Second form application........................................................................................................................126
Chapter four
Object Oriented
Programming
Introduction...........................................................................................................................................128
First example: Date and Time...............................................................................................................128
News application in Object Oriented....................................................................................................133
Queue Application.................................................................................................................................139
Object Oriented File..............................................................................................................................144
Copy files using TFileStream.................................................................................................................144
Inheritance.............................................................................................................................................145