OBJECT PASCAL Marzena Szałas
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
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
ZMIENNE I STAŁE zmienne: stałe: const var zmienna1, zmienna2 : integer; zmienna3 : string = ‘Napis domyślny’; stałe: const ErrorString = ‘Niebezpieczeństwo’; i : integer = 10; Object Pascal
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
TYPY JĘZYKA OBJECT 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
TYPY DEFINIOWANE PRZEZ 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
TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKA rekordów: type MojRekord = Record pole1 : integer; pole2 : string end; wskaźników (procedury: New() Dispose() GetMem() FreeMem() ): PInt = ^integer; PMojRekord = ^MojRekord; Object Pascal
TYPY DEFINIOWANE PRZEZ UŻYTKOWNIKA zbioró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
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
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
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
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
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
PAKIETY podział ze względu na rolę pełnioną w tworzonych aplikacjach: pakiety wykonywalne; pakiety środowiskowe; pakiety uniwersalne; pakiety pomocnicze; Object Pascal
PROGRAMOWANIE 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
PROGRAMOWANIE 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; statyczne wirtualne dynamiczne zarządzające komunikatami Object Pascal
PROGRAMOWANIE OBIEKTOWE przedefiniowywanie metod – override; przeciążanie metod – overload; redefinicja metod klasy – reintroduce; metody zaprzyjaźnione; Object Pascal
PROGRAMOWANIE OBIEKTOWE widoczność elementów obiektu: private; protected; public; published; automated; Object Pascal
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
STRUKTURALNA OBSŁUGA 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
STRUKTURALNA 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
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
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
KOMPONENTY W DELPHI strumieniowość; domyślne wartości właściwości; Object Pascal
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