1 DELPHI
2 Delphi jest zaliczany do narzędzi zwanych Rapid Application Development (RAD), co oznacza szybkie tworzenie aplikacji Delphi jest wizualnym, komponentowym i obiektowym środowiskiem programistycznym Delphi zawiera język programowania obiektowego: Object Pascal
3 Środowisko Delphi (menu, okna itd), w którym tworzymy aplikacje, jest zintegrowane (IDE - Integrated Development Environment) Język Object Pascal wchodzący w skład Delphi jest zgodny z językiem Borland/Turbo Pascal 7.0 i z wersjami wcześniejszymi dla systemu Dos.
4 Funkcje i procedury napisane za pomocą Borland Pascala 7Funkcje i procedury napisane za pomocą Borland Pascala 7.0 i wersji wcześniejszych wykorzystywane w Delphi nie mogą korzystać z następujących modułów: Crt, Dos, Graph, Graph3, Overlay, Printer, Turbo3 Moduł System został znacznie rozwinięty w stosunku do Borland Pascala 7.0
5 Istnieją też różnice w nazewnictwie funkcji, npIstnieją też różnice w nazewnictwie funkcji, np. zamiast Close, jest CloseFile W Object Pascalu został zachowany (w celu zgodności z Borland Pascalem 7.0 i wersjami wcześniejszymi) typ obiektowy definiowany za pomocą słowa kluczowego object
6 Delphi W Object Pascalu został wprowadzony nowy model typu obiektowego definiowany za pomocą słowa kluczowego class Delphi nie akceptuje modułów i programów napisanych z wykorzystaniem bibliotek Turbo Vision lub Object Windows Library
7 Delphi Biblioteka VCL wchodząca w skład Delphi zawiera ponad 100 konfigurowalnych komponentów (są to określonego rodzaju typy obiektowe) wielokrotnego użycia Dzięki komponentom tworzenie aplikacji w Delphi jest bardzo szybkie Komponenty reprezentują elementy sterujące aplikacji takie jak: przyciski, pola edycyjne do wprowadzania tekstu i wiele innych
8 Delphi Tworzenie aplikacji w Delphi jest dwutorowe (ang. two-way-tools) pierwszym torem są narzędzia wizualne, drugim - pisanie kodu źródłowego wszystko co jest zrobione za pomocą narzędzi wizualnych jest automatycznie uwzględniane w kodzie źródłowym
9 Obydwie drogi są równie ważne:narzędzia wizualne służą do szybkiego projektowania interfejsu użytkownika jednak aby aplikacja robiła coś konkretnego, musimy to napisać za pomocą języka Object Pascal
10 32-bitowa architektura systemów Windows 95/NT pozwala na budowę struktur danych (np. tablic) i ciągów znaków o rozmiarze do dwóch gigabajtów (2 GB) dzięki temu możemy bez problemu przetwarzać pliki tekstowe i graficzne większe niż 64 KB
11 W listach obiektowych maksymalna liczba elementów wynosi ponad 130 mln, jeśli jest wystarczająca ilość pamięci wirtualnej Listy tworzymy za pomocą typów: TStringList - lista łańcuchów (tekstów), TList - lista elementów dowolnego typu (np. liczby, łańcuchy, rekordy, obiekty)
12 Programowanie wizualneprogramowanie (a właściwie projektowanie) kolejnych formularzy i raportów aplikacji metodą umieszczania na pustych formach wymaganych elementów (komponentów) komponenty wizualne (z interfejsem GUI) umieszczone na formie metodą drag & drop po skompilowaniu aplikacji wyglądają identycznie (WYSIWYG)
13 Programowanie wizualnezmiana niektórych własności komponentów (np. wielkość, położenie, kolor) oraz ich wzajemnego rozmieszczenia realizowana bez pisania kodu powiązania komponentów też mogą być realizowane wizualnie – wykorzystanie diagramów klas i encji (dla aplikacji bazodanowych), często bazujące na wcześniej zaprojektowanym modelu UML (Unified Model Language)
14 Programowanie wizualnezmiany dokonywane wizualnie automatycznie są zamieniane na odpowiedni kod – CASE (Computer Aided Software Engineering), często w kilku plikach jednocześnie, np. w specyfikacji klasy dodawana jest deklaracja metody, natomiast w ciele szablon definicji składowe projektu zarządzane za pomocą łatwo konfigurowalnych struktur hierarchicznych
15 Programowanie wizualnecechy obiektów (własności, metody i zdarzenia) dostępne za pomocą wygodnych tabelarycznych lub drzewiastych struktur oraz podpowiadane podczas tworzenia kodu (code completion) konfiguracja wartości złożonych i powiązań wspierana za pomocą licznych kreatorów (wizards)
16 Programowanie komponentoweskładanie aplikacji „z klocków” - komponentów (kontrolek) dostępnych wraz z środowiskiem, doinstalowywanych lub pisanych na bieżąco – szybkie tworzenie aplikacji (RAD) programista oprogramowuje interakcję pomiędzy komponentami (glue)
17 Programowanie komponentowehermetyzacja i wielokrotne użycie – cechy obiektowości podział komponentów na: wizualne – ich umieszczanie na formularzu wpływa na jego wizualną postać niewizualne – nie wpływają na wygląd formularza, umieszczane na formularzu (w kontenerze) w postaci specjalnych ikon-symboli, np. komponenty bazodanowe,
18 Programowanie zdarzeniowezgodne z architekturą obecnych systemów operacyjnych z bogatym GUI – użytkownik lub inna aplikacja (również zdalna) generuje zdarzenie, które system przekazuje do odpowiedniej aplikacji aplikacja może (nie musi) dokonać obsługi zdarzenia
19 Programowanie zdarzeniowekomponenty mają wyspecyfikowane określone, właściwe dla nich zdarzenia, dla których programista może zrealizować funkcje obsługi (event handler) funkcje obsługi zdarzeń mogą dynamicznie generować nowe komponenty lub zdarzenia jeżeli kilka zdarzeń ma być obsługiwanych identycznie, nie jest konieczne pisanie osobnych funkcji – możliwość wizualnego wyboru odpowiedniej funkcji obsługi
20 Wspierane technologieformularze i raporty - komponenty wizualne realizujące GUI relacyjne i obiektowo-relacyjne bazy danych SQL – dostęp przez ODBC, JDBC, OLE DB (ADO), ADO.NET, itp. programowanie client-server – protokoły sieciowe TCP,UDP, HTTP, SMTP i in. aplikacje wielowarstwowe – OLE/COM, ISAPI, EJB, JavaServlet aplikacje Web – ASP, JSP, XML przetwarzanie rozproszone – DCOM, CORBA, RMI, WebServices (protokoły WSDL, SOAP i UDDI oparte na XML)
21 Każdy formularz jest zdefiniowany jako klasaFakt ten ma następujące konsekwencje: Formularz jest typem danych, a nie obiektem danych. Jeden z formularzy składających się na aplikację jest formularzem głównym Jest on tworzony automatycznie w momencie uruchomienia programu i służy jako okienko inicjacyjne Można utworzyć wiele obiektów tego samego typu formularza
22 Klasa Formularz Każda klasa formularza ma związane ze sobą własności:jedne z nich dotyczą postaci formularza widocznego na ekranie (kolor, wielkość itp.), inne z nich mają wpływ na zachowanie się – np. określają, czy wielkość formularza może być zmieniana projektując formularz określamy wartości początkowe jego własności zestaw wartości początkowych jest używany zawsze wtedy, gdy program tworzy nowy obiekt klasy formularz w czasie wykonywania programu wiele z tych własności można zmienić
23 Klasa Formularz każda klasa formularza ma zbiór związanych z nią metodmetoda jest funkcją, dzięki której można wykonać akcję z użyciem formularza. formularz ma metody sprawdzania zmian własności formularza
24 Okienka komunikatów służą do wyświetlania informacji dla użytkownikaokna komunikatów nie są dostępne z palety komponentów, nie można umieścic w trakcie projektowania formularza wyświetla się je podczas działania programu przez wywołanie odpowiedniej procedury lub funkcji
25 Okienka komunikatów można podzielić na dwie grupy:okienka wyświetlane za pomocą metody Message Box obiektu Application (Application.MessageBox) okienka wyświetlane za pomocą procedur i funkcji (ShowMessage, MessageDlg, MessageDlgPos)
26 Okienka komunikatów napisy w okienku MessageBox wyświetlane są w języku, który jest zainstalowany w systemie Windows (jeśli polski, to napisy polskie) napisy na przyciskach drugiej grupy są wyświetlane w języku ang. okienka komunikatów wyświetlane są w trybie modalnym
27 MessageBox wyświetlanie komunikatów z napisami stałymi w języku systemowym składnia: function MessageBox(const Text, Caption, Flags) gdzie Text – treść komunikatu, Caption – tytuł okienka na pasku nazwy Flags – określa typ okna, liczbę i rodzaje przycisków
28 Wybrane wartości parametru FlagsParametr Flags Znaczenie MB_OK Jeden przycisk Tak MB_OKCancel Dwa: Tak, Anuluj MB_YesNo Dwa: Tak, Nie MB_YesNoCancel Trzy: Tak, Nie, Anuluj MB_RetryCancel Dwa: Ponów próbę, Anuluj MB_AbortRetryIgnore Trzy: Przerwij, Ponów próbę, Anuluj
29 Wartości zwracane przez funkcję MessageBoxZnaczenie - Po naciśnięciu przycisku IdOk OK IdCancel Anuluj IdAbort Przerwij IdRetry Ponów próbę IdIgnore Zignoruj IdYes Tak IdNo Nie
30 MessageBox Możemy także określić typ obrazka w oknie: MB_ICONWarning - żółty trójkąt z wykrzyknikiem. MB_ICONError - czerwone koło z iksem. MB_ICONInformation - biały dymek z literą i. MB_ICONQuestion - biały dymek ze znakiem zapytania Application.MessageBox('To jest moje okienko', 'Informacja', MB_OK + MB_ICONInformation);
31 procedure TForm1.Image1Click(Sender: TObject);begin if Application.MessageBox ( 'Czy zakonczyc?', 'tytul okna', MB_OKCancel)=IdOk then Application.Terminate; end;
32
33 Poniższe funkcje i procedury zostały zdefiniowane w module DialogsShowMessage ShowMessageFmt MessageDlg MessageDlgPos MessageDlgPosHelp
34 ShowMessage procedure ShowMessage(const Msg: string);Wyświetla okienko z pojedyńczym przyciskiem (OK - powodującym zamknięcie okienka), oraz tekstem (parametr Msg). Tytuł okienka jest taki sam jak aplikacji
35 ShowMessage procedure TForm1.Edit1DblClick(Sender: TObject); beginif Application.MessageBox ('Czy zakończyc?', 'zapytanie', MB_OkCancel)=IdOk then Application.Terminate; end;
36
37 ShowMessageFmt procedure ShowMessageFmt(const Msg: string; Params: array of const); Wyświetla okienko z pojedyńczym przyciskiem (OK - powodującym zamknięcie okienka), oraz tekstem (parametr Msg) Tytuł okienka jest taki sam jak aplikacji Pozwala na sformatowanie wyświetlanego tekstu na podstawie parametru Params:
38 MessageDlg Funkcja MessageDlg służy do wyświetlania komunikatów na środku ekranu monitora Jest ona bardzo podobna do funkcji MessageBox - obydwie służą do komunikacji użytkownik – program Różnica : MessageBox daje większe możliwości redagowania komunikatów, podczas gdy przy pomocy MessageDlg mamy ograniczoną swobodę ich tworzenia.
39 MessageDlg MessageDlg nie jest również składnikiem WinAPIZ tego powodu używa się w niej typowych dla Delphi typów danych By móc uzyć MessageDlg w programie, należy dodać Dialogs do sekcji uses
40 Funkcja MessageDlgPosokna wyświetlane za jej pomocą mogą zawierać więcej niż jeden przycisk umożliwiają wybranie odpowiedzi i na ich podstawie odpowiednią reakcję programu za pomocą parametru DlgType można określić rodzaj wyświetlanego okna okna różnią się m. in. napisem na pasku nazwy
41 Funkcja MessageDlgPosfunction MessageDlgPos(Msg, DlgType, Buttons, HelpCtx, X,Y): Word; gdzie: Msg – treść komunikatu DlgType – rodzaj okna dialogowego Buttons – rodzaje przycisków wyświetlanych w oknie dialogowym HelpCtx – łącze do systemu pomocy, wartość 0 oznacza brak łącza X, Y to współrzędne lewego górnego wierzchołka
42 Wartości parametru DlgTypetytuł okna dialogowego mtConfirmation okno z tytułem Confirm (potwierdź) mtCustom z tytułem takim jak nazwa aplikacji mtError do wyświetlania komunikatu o błędzie mtInformation informacyjne mtWarning typu Warning (ostrzegajace)
43 Nazwy stałych typu TMsgDlgButtonsnazwa stałej zbiór przycisków mbYesNoCancel [mbYes, mbNo, mbCancel] mbYesNoAllCancel [mbYes, mbYesToAll, mbNo, mbCancel] mbOKCancel [mbOK, mbCancel] mbAbortRetryIgnore [mbAbort, mbRetry, mbIgnore] mbAbortIgnore [mbAbort, mbIgnore]
44 procedure TForm1.Button3Click(Sender: TObject);var i:Word; begin i:=MessageDlgPos('Jestem wewnatrz',mtCustom,mbYesNoCancel, 0, Left+20,Top+20); case i of mrYes:Label1.Caption:='TAK'; mrNo:Label1.Caption:='NIE'; mrCancel:Label1.Caption:='CANCEL'; end;
45
46
47 ShowMessage procedure TForm1.Button1Click(Sender: TObject); beginShowMessage('Koniec pracy!'); Application.Terminate; end;
48 ShowMessage
49 MessageDlg procedure TForm1.Button2Click(Sender: TObject); beginif MessageDlg('Czy zakonczyc prace?', mtConfirmation,[mbYes,mbNo],0)=mrYes then Application.Terminate; end;
50 MessageDlg