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.



Download Book (PDF)


Download Examples



Chapters:


  1. Language Basics

  2. Structured Programming

  3. GUI

  4. 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



Free Web Hosting