[ Pobierz całość w formacie PDF ]
jest środowiskiem programowania zorientowanego obiektowo. Oznacza to, że
w wyniku dziedziczenia cech pewnej klasy przy tworzeniu kolejnej powstaje
prawdziwa - w kategoriach programowania obiektowego - klasa potomna.
Programista, tworzący w Delphi nowe obiekty potomne, może korzystać ze
wszystkich typowych mechanizmów języka zorientowanego obiektowo, w tym
z polimorfizmu i dostępu do atrybutów i metod przodka.
Po drugie, Delphi oferuje mechanizm wizualnego dziedziczenia formularzy
(ang. visual form inheritance). Przy okazji tworzenia nowego formularza na
podstawie innego, nie powstaje statyczna kopia formularza-przodka. Zmiany,
wprowadzone
w formularzu-przodku,
uwzględniane
są
w formularzach
potomnych. Klasy formularzy Delphi są kompilowane do kodu maszynowego,
przez co tworzenie rozbudowanych hierarchii formularzy nie pociąga za sobą
884
istotnego spadku wydajności. Stworzone formularze można przechowywać
w składnicy obiektów (ang. Object Repository) i wykorzystywać do tworzenia
formularzy potomnych. Analogiczny mechanizm dostępny jest w odniesieniu do
modułów danych; również na ich podstawie można tworzyć moduły potomne.
Delphi oferuje zatem zarówno łatwość wizualnego dziedziczenia formularzy, jak
i dużą szybkość wykonania, związaną z kompilacją do kodu maszynowego.
Obsługa wyjątków
Prawdziwie elastyczne narzędzie do tworzenia aplikacji powinno oferować
mechanizmy przechwytywania wyjątków. Wyjątek (ang. exception) to każde
niespodziewane zdarzenie, wpływające na działanie aplikacji. Język Object Pascal
oferuje - znaną programistom C++ - obsługę wyjątków na poziomie klas.
Większość klas Delphi reaguje na wyjątki i potrafi automatycznie obsłużyć wiele
z nich. Wyjątki również zdefiniowano jako klasy, dzięki czemu programista może
definiować własne wyjątki na bazie istniejących.
Mechanizmy
obsługi
wyjątków
w Delphi
są
kompletne.
Pozwalają
na
kontrolowaną obsługę wszelkich zdarzeń, począwszy od błędu połączenia z bazą
danych, aż po naruszenie praw dostępu do bloku pamięci (Access Violation)
w Windows.
Z kolei PowerBuilder ma bardzo ubogie możliwości w zakresie obsługi błędów.
Wprawdzie większość funkcji wykrywa błędy, ale prawie zawsze reakcja
sprowadza się do zignorowania problemu i kontynuacji wykonania programu.
Podstawową obsługę błędów zrealizować można za pośrednictwem globalnego
zdarzenia SystemError. Mimo to stwierdzić należy, że PowerBuilder nie
dysponuje porównywalnymi z Delphi mechanizmami obsługi wyjątków.
Porównanie języków
Jak już wspomniano, z uwagi na zasadnicze różnice w sposobie działania
PowerBuildera i Delphi, trudno będzie przeprowadzić dokładne porównanie
poszczególnych elementów języka. W niniejszej sekcji przedstawione zostaną -
w miarę
możliwości
-
podobieństwa
między
językami
obu
środowisk
programowania. Poniższe porównania nie są wyczerpujące i mogą pomóc
wyłącznie w pierwszej fazie poznawania nowego środowiska.
Typy danych
Typy danych PowerBuildera są odpowiednikami zarówno typów danych, jak
i obiektów Object Pascala. Niektóre z nich zebrano w tabeli A.5.
Typ PowerBuildera
Any
Blob
Boolean
Char
Date, DateTime, Time
Decimal
Double
Integer
Long
Object
Real
String
UnsignedInteger
Structure
885
Tabela A.5. Zestawienie typów danych PowerBuildera i Object
Pascala.
Typ
lub
Pascala
Variant
TBlobField
Boolean
Char
TDateTime
Extended
Double
klasa
Object Rodzaj
Typ
Klasa
Typ
Typ
Typ
Typ
Typ
Typ
Typ
Klasa
Typ
Typ
Typ
Typ
SmallInt
Longint
Tobject, TComponent
Single
ShortString
Word
Record
Kontrolki
Porównanie dostępnych w obu środowiskach typów danych jest dość ambitnym
zadaniem. Nieco łatwiejsze okazuje się porównanie kontrolek, oferowanych przez
PowerBuildera i Delphi. Większość kontrolek należy bowiem do elementów
[ Pobierz całość w formacie PDF ]