1 OBJECT PASCAL Marzena Szałas
2 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 podstawy języka Object Pascal: komponenty w Delphi;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: stałe: const varzmienna1, zmienna2 : integer; zmienna3 : string = ‘Napis domyślny’; stałe: const ErrorString = ‘Niebezpieczeństwo’; i : integer = 10; Object Pascal
5 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 PASCALbezpieczeń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 PRZEZ UŻYTKOWNIKAmają 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 PRZEZ UŻYTKOWNIKArekordów: type MojRekord = Record pole1 : integer; pole2 : string end; wskaźników (procedury: New() Dispose() GetMem() FreeMem() ): PInt = ^integer; PMojRekord = ^MojRekord; Object Pascal
9 TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKAzbiorów (dostępne operacje: in <= + - *, procedury: Include() Exclude() ): type Znaki = set of Char; Liczby = set of 0..9; obiektów: 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 WARUNKOWE instrukcja If: if x=5 then instrukcja wyboru:else instrukcja2; instrukcja wyboru: case x of 1: instrukcja1; 2: instrukcja2; else instrukcja3; end; Object Pascal
11 PĘTLE pętla For: pętla While…Do: pętla Repeat…Until: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 until x=100; procedura Break(); procedura Continue(); Object Pascal
12 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 przeciążanie procedur i funkcji:function Divide (X, Y: Real): Real; overload; begin … end; function Divide (X, Y: Integer): Integer; overload; domyślne parametry procedur i funkcji: procedure MyMessage (Msg: String; Line: byte = 0); MyMessage (‘Hello’,1); MyMessage (‘Hello’); Object Pascal
14 MODUŁY Budowa: cykliczne odwołanie do modułu; 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 podział ze względu na rolę pełnioną w tworzonych aplikacjach:pakiety wykonywalne; pakiety środowiskowe; pakiety uniwersalne; pakiety pomocnicze; Object Pascal
16 PROGRAMOWANIE OBIEKTOWEdziedziczenie 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 OBIEKTOWEzmienna predefiniowana Self; typy metod obiektowych: TFoo = class procedure Statyczna; procedure Wirtualna; virtual; procedure Dynamiczna; dynamic; procedure Komunikacyjna (var M: TMessage); message wm_SomeMessage; statyczne wirtualne dynamiczne zarządzające komunikatami Object Pascal
18 PROGRAMOWANIE OBIEKTOWEprzedefiniowywanie metod – override; przeciążanie metod – overload; redefinicja metod klasy – reintroduce; metody zaprzyjaźnione; Object Pascal
19 PROGRAMOWANIE OBIEKTOWEwidoczność elementów obiektu: private; protected; public; published; automated; Object Pascal
20 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 WYJĄTKÓWwyją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 OBSŁUGA WYJĄTKÓWklasa 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 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 podział komponentów: rodzaje właściwości: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 strumieniowość; domyślne wartości właściwości;Object Pascal
26 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”; Object Pascal