OBJECT PASCAL Marzena Szaas Object Pascal WSTP o
OBJECT PASCAL Marzena Szałas Object Pascal
WSTĘP o Object Pascal podstawowym językiem programowania w Delphi; o dostępne elementy: n n n obsługa wyjątków; zmienne typu Variant; tablice otwarte; domyślne parametry procedur i funkcji; tablice dynamiczne… Object Pascal 2
STRESZCZENIE o podstawy języka Object Pascal: n 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; o komponenty w Delphi; Object Pascal 3
ZMIENNE I STAŁE o zmienne: var zmienna 1, zmienna 2 : integer; zmienna 3 : string = ‘Napis domyślny’; o stałe: const Error. String = ‘Niebezpieczeństwo’; i : integer = 10; Object Pascal 4
OPERATORY o przypisania: : = ; o porównania: = <> < > <= >= ; o logiczne: and or not ; o arytmetyczne: + - * / div mod ; o bitowe: and or not xor shl shr ; o zwiększania/zmniejszania: Inc() Dec() ; Object Pascal 5
TYPY JĘZYKA OBJECT PASCAL o bezpieczeństwo typów; o przykładowe typy: n typy całkowitoliczbowe: Integer, Shortint, Byte… n typy zmiennoprzecinkowe: Single, Double, Currency… n typy logiczne: Boolean, Long. Bool… n 3 typy reprezentujące pojedynczy znak: Ansi. Char, Wide. Char i Char; n łańcuchy: Ansi. String, Short. String, Wide. String… n typ Variant (wartości UNASSIGNED i NULL); Object Pascal 6
TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKA o mają postać: n tablic (tablice dynamiczne): type Tablica 1 = array [0. . 5] of integer; var Tab 1 : Tablica; Tab 2 : array [2. . 5] of integer; Tab 3 : array of string; Object Pascal 7
TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKA n rekordów: type Moj. Rekord = Record pole 1 : integer; pole 2 : string end; n wskaźników (procedury: New() Dispose() Get. Mem() Free. Mem() ): type PInt = ^integer; PMoj. Rekord = ^Moj. Rekord; Object Pascal 8
TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKA n zbiorów (dostępne operacje: in <= + - *, procedury: Include() Exclude() ): type Znaki = set of Char; Liczby = set of 0. . 9; n obiektów: type bardzo nietypowe (składowa z danymi) tp = procedure (a: integer); Tkl = class (TObject) typowe (składowa z i : integer; danymi) p 1 : tp; typowe procedure p 2; (metoda) end; Object Pascal 9
INSTRUKCJE WARUNKOWE o instrukcja If: if x=5 then instrukcja 1 else instrukcja 2; o instrukcja wyboru: case x of 1: instrukcja 1; 2: instrukcja 2; else instrukcja 3; end; Object Pascal 10
PĘTLE o pętla For: for i: =1 to 100 do x : = x + i; o pętla While…Do: while x<>100 do x : = x + 1; o pętla Repeat…Until: repeat x : = x + 1; until x=100; o procedura Break(); o procedura Continue(); Object Pascal 11
PROCEDURY I FUNKCJE o zmienna Result; o przekazywanie parametrów: n n n przez wartość; przez adres; przez stałą; o mechanizm tablic otwartych: procedure Kazda. Tablica (var X: array of integer) Object Pascal 12
PROCEDURY I FUNKCJE o przeciążanie procedur i funkcji: function Divide (X, Y: Real): Real; overload; begin … end; function Divide (X, Y: Integer): Integer; overload; begin … end; o domyślne parametry procedur i funkcji: procedure My. Message (Msg: String; Line: byte = 0); My. Message (‘Hello’, 1); My. Message (‘Hello’); Object Pascal 13
MODUŁY o Budowa: n dyrektywa UNIT; n część publiczna (interface); n część prywatna (implementation); n część inicjacyjna (initialization); n część kończąca (finalization); o cykliczne odwołanie do modułu; Object Pascal 14
PAKIETY o podział ze względu na rolę pełnioną w tworzonych aplikacjach: n n pakiety wykonywalne; pakiety środowiskowe; pakiety uniwersalne; pakiety pomocnicze; Object Pascal 15
PROGRAMOWANIE OBIEKTOWE o dziedziczenie w Object Pascalu; o konstruktor Create() i destruktor Destroy(); o pole metoda właściwość TMy. Object = Class Some. Value : Integer; procedure Set. Some. Value (AValue: Integer; property Value: Integer read Some. Value write Set. Some. Value; End; Object Pascal 16
PROGRAMOWANIE OBIEKTOWE o zmienna predefiniowana Self; o typy metod obiektowych: statyczne wirtualne dynamiczne zarządzające komunikatami TFoo = class procedure Statyczna; procedure Wirtualna; virtual; procedure Dynamiczna; dynamic; procedure Komunikacyjna (var M: TMessage); message wm_Some. Message; Object Pascal 17
PROGRAMOWANIE OBIEKTOWE o przedefiniowywanie metod – override; o przeciążanie metod – overload; o redefinicja metod klasy – reintroduce; o metody zaprzyjaźnione; Object Pascal 18
PROGRAMOWANIE OBIEKTOWE o widoczność elementów obiektu: n private; n protected; n public; n published; n automated; Object Pascal 19
INTERFEJSY o numer identyfikacyjny interfejsu: globalnie unikalny identyfikator – GUID; o nie mogą zawierać pól; o wszystkie metody interfejsu są publiczne; o interfejs IInterface klasą bazową wszystkich interfejsów; o Interfejs – typ o kontrolowanym czasie życia; Object Pascal 20
STRUKTURALNA OBSŁUGA WYJĄTKÓW o wyjątek – obiekt zawierający niezbędną informację; o try…finally…end – konstrukcja gwarantująca wykonanie określonego ciągu instrukcji, niezależnie od błędu; o try…except…end – narzędzie do obsługi błędów; o sekcja obsługi domyślnej; Object Pascal 21
STRUKTURALNA OBSŁUGA WYJĄTKÓW o klasa Exception – typ bazowy dla obiektów reprezentujących wyjątki (właściwość Message); o generowanie własnych wyjątków – instrukcja Raise; Object Pascal 22
KOMPONENTY W DELPHI o klasa każdego komponentu pochodną klasy bazowej TComponent; o kontakt ze światem w większości za pomocą właściwości (właściwość Name i właściwość Tag); o komponent-właściciel; o mechanizm zdarzeń – specyfika komponentów, wyróżniająca je spośród innych klas; Object Pascal 23
KOMPONENTY W DELPHI o podział komponentów: n komponenty niewizualne; n komponenty wizualne (relacja rodzicielstwa); o rodzaje właściwości: n właściwości proste; n właściwości wyliczeniowe; n właściwości zbiorowe; n właściwości obiektowe; n właściwości tablicowe; Object Pascal 24
KOMPONENTY W DELPHI o strumieniowość; o domyślne wartości właściwości; Object Pascal 25
LITERATURA o A. Marciniak – „Object Pascal – język programowania w środowisku Borland Delphi 2. 0”; o S. Teixeira, X. Pacheco – „Delphi 4. Vademecum profesjonalisty”; o A. Grażyński, Z. Zarzycki – „Delphi 7 dla każdego”; Object Pascal 26
- Slides: 26