OBJECT PASCAL
OBJECT PASCAL
Marzena Szałas
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…
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;
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;
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() ;
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);
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;
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;
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)
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;
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();
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)
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’);
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;
Object Pascal
15
PAKIETY
PAKIETY
podział ze względu na rolę pełnioną
w tworzonych aplikacjach:
pakiety wykonywalne;
pakiety środowiskowe;
pakiety uniwersalne;
pakiety pomocnicze;
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ś
ć
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
e
komunikata
mi
Object Pascal
18
PROGRAMOWANIE
PROGRAMOWANIE
OBIEKTOWE
OBIEKTOWE
przedefiniowywanie metod –
override;
przeciążanie metod – overload;
redefinicja metod klasy –
reintroduce;
metody zaprzyjaźnione;
Object Pascal
19
PROGRAMOWANIE
PROGRAMOWANIE
OBIEKTOWE
OBIEKTOWE
widoczność elementów obiektu:
private;
protected;
public;
published;
automated;
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;
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;
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;
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;
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;
Object Pascal
25
KOMPONENTY W DELPHI
KOMPONENTY W DELPHI
strumieniowość;
domyślne wartości właściwości;
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”;