background image

OBJECT PASCAL

OBJECT PASCAL

Marzena Szałas

background image

Object Pascal

2

WSTĘP

WSTĘP

Object Pascal podstawowym 
językiem programowania w Delphi;

dostępne elementy:

obsługa wyjątków;

zmienne typu Variant;

tablice otwarte;

domyślne parametry procedur i 
funkcji;

tablice dynamiczne…

background image

Object Pascal

3

STRESZCZENIE

STRESZCZENIE

podstawy języka Object Pascal:

zmienne, stałe, operatory, typy 
języka i definiowane przez 
użytkownika, instrukcje warunkowe, 
pętle, procedury i funkcje, moduły, 
pakiety, wykorzystanie obiektów, 
strukturalna obsługa wyjątków;

komponenty w Delphi;

background image

Object Pascal

4

ZMIENNE I STAŁE

ZMIENNE I STAŁE

zmienne:

var

zmienna1, zmienna2 : integer;
zmienna3 : string = ‘Napis domyślny’;

stałe:

const

 

ErrorString = ‘Niebezpieczeństwo’;
i : integer = 10;

background image

Object Pascal

5

OPERATORY

OPERATORY

przypisania: := ;

porównania: = <> < > <= >= ;

logiczne: and or not ;

arytmetyczne: + - * / div mod ;

bitowe: and or not xor shl shr ;

zwiększania/zmniejszania: Inc() 
Dec() ;

background image

Object Pascal

6

TYPY JĘZYKA OBJECT 

TYPY JĘZYKA OBJECT 

PASCAL

PASCAL

bezpieczeństwo typów;

przykładowe typy:

typy całkowitoliczbowe: Integer, Shortint, 

Byte…

typy zmiennoprzecinkowe: Single, Double, 

Currency…

typy logiczne: Boolean, LongBool…

3 typy reprezentujące pojedynczy znak: 

AnsiChar, WideChar i Char;

łańcuchy: AnsiString, ShortString, 

WideString…

typ Variant (wartości UNASSIGNED i NULL);

background image

Object Pascal

7

TYPY DEFINIOWANE 

TYPY DEFINIOWANE 

PRZEZ 

PRZEZ 

UŻYTKOWNIKA

UŻYTKOWNIKA

mają postać:

tablic (tablice dynamiczne):

type

Tablica1 = array [0..5] of integer;

var

Tab1 : Tablica;
Tab2 : array [2..5] of integer;

Tab3 : array of string;

background image

Object Pascal

8

TYPY DEFINIOWANE 

TYPY DEFINIOWANE 

PRZEZ 

PRZEZ 

UŻYTKOWNIKA

UŻYTKOWNIKA

rekordów:

type

MojRekord = Record

pole1 : integer;
pole2 : string

end;

wskaźników (procedury: New() 

Dispose() GetMem() FreeMem() ):

type

PInt = ^integer;
PMojRekord = ^MojRekord;

background image

Object Pascal

9

TYPY DEFINIOWANE 

TYPY DEFINIOWANE 

PRZEZ 

PRZEZ 

UŻYTKOWNIKA

UŻYTKOWNIKA

zbiorów (dostępne operacje: in <= + - 

*procedury: Include() Exclude() ):

type
Znaki = set of Char;
Liczby = set of 0..9;

obiektów:

type
tp =  procedure (a: integer);

Tkl = class (TObject)

i  : integer;                 
p1 : tp;                     

  procedure p2;  

end;

typowe 
(składowa z 
danymi)

bardzo 
nietypowe 
(składowa z 
danymi)

typowe 
(metoda)

background image

Object Pascal

10

INSTRUKCJE

INSTRUKCJE

 

 

WARUNKOWE

WARUNKOWE

instrukcja If:

if x=5 then

instrukcja1

else

instrukcja2;

instrukcja wyboru:

case x of

1: instrukcja1;
2: instrukcja2;
else

instrukcja3;

end;

background image

Object Pascal

11

PĘTLE

PĘTLE

pętla For:

for i:=1 to 100 do

x := x + i;

pętla While…Do:

while x<>100 do

x := x + 1;

pętla Repeat…Until:

repeat

x := x + 1;

until x=100;

procedura Break();

procedura Continue();

background image

Object Pascal

12

PROCEDURY I FUNKCJE

PROCEDURY I FUNKCJE

zmienna Result;

przekazywanie parametrów:

przez wartość;

przez adres;

przez stałą;

mechanizm tablic otwartych:

procedure KazdaTablica (var X: array of integer)

background image

Object Pascal

13

PROCEDURY I FUNKCJE

PROCEDURY I FUNKCJE

przeciążanie procedur i funkcji:

function Divide (X, Y: Real): Real; overload;
begin 

end;
function Divide (X, Y: Integer): Integer; overload;
begin 

end;

domyślne parametry procedur i funkcji:

procedure MyMessage (Msg: String; Line: byte = 0);
MyMessage (‘Hello’,1);
MyMessage (‘Hello’);

background image

Object Pascal

14

MODUŁY

MODUŁY

Budowa:

dyrektywa UNIT;

część publiczna (interface);

część prywatna (implementation);

część inicjacyjna (initialization);

część kończąca (finalization);

 cykliczne odwołanie do modułu;

background image

Object Pascal

15

PAKIETY

PAKIETY

podział ze względu na rolę pełnioną 
w tworzonych aplikacjach:

pakiety wykonywalne;

pakiety środowiskowe;

pakiety uniwersalne;

pakiety pomocnicze;

background image

Object Pascal

16

PROGRAMOWANIE 

PROGRAMOWANIE 

OBIEKTOWE

OBIEKTOWE

dziedziczenie w Object Pascalu;

konstruktor Create() i destruktor 
Destroy();

 

TMyObject = Class

SomeValue : Integer;
procedure SetSomeValue (AValue: Integer;
property Value: Integer read SomeValue write 

SetSomeValue;

End;

pole

metoda

właściwoś
ć

background image

Object Pascal

17

PROGRAMOWANIE 

PROGRAMOWANIE 

OBIEKTOWE

OBIEKTOWE

zmienna predefiniowana Self;

typy metod obiektowych:

TFoo = class

procedure Statyczna;
procedure Wirtualna; virtual;
procedure Dynamiczna; dynamic;
procedure Komunikacyjna (var M: TMessage); 

message wm_SomeMessage;

statyczn
ewirtualn

e

dynamiczn
e

zarządzając

komunikata
mi

background image

Object Pascal

18

PROGRAMOWANIE 

PROGRAMOWANIE 

OBIEKTOWE

OBIEKTOWE

przedefiniowywanie metod – 
override;

przeciążanie metod – overload;

redefinicja metod klasy – 
reintroduce;

metody zaprzyjaźnione;

background image

Object Pascal

19

PROGRAMOWANIE 

PROGRAMOWANIE 

OBIEKTOWE

OBIEKTOWE

widoczność elementów obiektu:

private;

protected;

public;

published;

automated;

background image

Object Pascal

20

INTERFEJSY

INTERFEJSY

numer identyfikacyjny interfejsu: 
globalnie unikalny identyfikator – GUID;

nie mogą zawierać pól;

wszystkie metody interfejsu są 
publiczne;

interfejs IInterface klasą bazową 
wszystkich interfejsów;

Interfejs – typ o kontrolowanym czasie 
życia;

background image

Object Pascal

21

STRUKTURALNA OBSŁUGA 

STRUKTURALNA OBSŁUGA 

WYJĄTKÓW

WYJĄTKÓW

wyjątek – obiekt zawierający 
niezbędną informację;

try…finally…end – konstrukcja 
gwarantująca wykonanie 
określonego ciągu instrukcji, 
niezależnie od błędu;

try…except…end – narzędzie do 
obsługi błędów;

sekcja obsługi domyślnej;

background image

Object Pascal

22

STRUKTURALNA 

STRUKTURALNA 

OBSŁUGA WYJĄTKÓW

OBSŁUGA WYJĄTKÓW

klasa Exception – typ bazowy dla 
obiektów reprezentujących wyjątki 
(właściwość Message);

generowanie własnych wyjątków – 
instrukcja Raise;

background image

Object Pascal

23

KOMPONENTY W DELPHI

KOMPONENTY W DELPHI

klasa każdego komponentu 

pochodną klasy bazowej TComponent;

kontakt ze światem w większości za 

pomocą właściwości (właściwość 

Name i właściwość Tag);

komponent-właściciel;

mechanizm zdarzeń – specyfika 

komponentów, wyróżniająca je 

spośród innych klas;

background image

Object Pascal

24

KOMPONENTY W DELPHI

KOMPONENTY W DELPHI

podział komponentów:

komponenty niewizualne;

komponenty wizualne (relacja 

rodzicielstwa);

rodzaje właściwości:

właściwości proste;

właściwości wyliczeniowe;

właściwości zbiorowe;

właściwości obiektowe;

właściwości tablicowe;

background image

Object Pascal

25

KOMPONENTY W DELPHI

KOMPONENTY W DELPHI

strumieniowość;

domyślne wartości właściwości;

background image

Object Pascal

26

LITERATURA

LITERATURA

 A. Marciniak – „Object Pascal – 
język programowania w środowisku 
Borland Delphi 2.0”;

 S. Teixeira, X. Pacheco – „Delphi 4. 
Vademecum profesjonalisty”;

A. Grażyński, Z. Zarzycki – „Delphi 7 
dla każdego”;


Document Outline