Języki i techniki programowania prowadzący dr Grzegorz Filipczyk
Platforma programowania
3 Pojęcie platformy programowania odnosi się zarówno do: samego procesu pisania i uruchamiania programu aplikacyjnego (IDE platform - Integrated Development Environment platform); warunków wykonywania aplikacji (target platform). Borland Delphi operuje na platformie Windows Environment, i to zarówno jako IDE Platform jak i Target Platform.
4 Elementy IDE - zintegrowanego środowiska programisty Główne okno IDE z rozwijalnym menu systemu. Menedżer projektów (Project Manager). Okno drzewa obiektów (Object TreeView). Inspektor obiektów (Object Inspector). Edytor kodu. Edytor graficzny. Debugger. Biblioteka komponentów (VCL - Visual Component Library). Generator baz danych. Generator raportów i wykresów. Generator helpu aplikacji. Generator komponentów VCL oraz ActiveX programisty. Generator programu instalacyjnego aplikacji.
5 Pojęcie komponentu Element programu realizujący konkretne zadanie (umożliwiający wprowadzenie danych, wyprowadzenie danych, obsługujący połączenie z serwerem WWW, odmierzający czas, wyświetlający zawartość folderu). Komponenty dostępne w narzędziach RAD firmy Borland są szczególnym przypadkiem obiektów.
6 Komponenty Komponent komunikuje się z otoczeniem (programem lub innym komponentem) poprzez metody, czyli procedury wykonujące określone zadania (nawiązanie połączenia, zapisanie pliku) oraz właściwości (np. kolor, rozmiar, nazwa obsługiwanej bazy danych) Właściwości mają charakter statyczny, tj. określają główne parametry obiektu, natura metod jest czynna – służą do wykonania określonych akcji
7 Komponenty Do realizacji wyznaczonych mu zadań komponent używa również własnych, wewnętrznych procedur, niewidocznych dla otoczenia i niewidocznych dla programisty - czarna skrzynka - realizująca obiektową zasadę hermetyzacji danych.
8 W czasie tworzenia aplikacji komponenty są widoczne na formularzu w postaci ikon. Budując program można zmieniać większość właściwości komponentu, w tym także ustalać jego powiązania z innymi komponentami) oraz określać sposób, w jaki będzie reagować na zdarzenia - bądź to zewnętrzne, bądź pochodzące od innych elementów aplikacji.
9 Komponenty systemu Borland Delphi (VCL – Visual Component Library) Każdy komponent systemu (przycisk, menu, pole edycji, pole wyboru itd.) jest opisywany zbiorem: właściwości (property) oraz zdarzeń (event). Właściwości, metody i zdarzenia to trzy klucze do komunikowania się z komponentem i wpływanie na jego stan. Właściwości komponentu i zdarzenia związane z komponentem są wizualizowane w oknie Inspektora obiektów (Object Inspector). Można je korygować w tym oknie lub zmieniać programowo.
10 Komponenty niewidzialne W czasie pracy programu komponent może, lecz nie musi być widoczny – stąd wyróżniamy komponenty widzialne i niewidzialne. Komunikacja z komponentami niewidzialnymi odbywa się w ten sam sposób jak z widzialnymi - poprzez zmianę ich właściwości, odwołania do metod oraz generowanie zdarzeń.
Paleta komponentów wersji Borland Delphi 7 Enterpise
12 Grupy komponentów ogólne obsługi baz danych internetowe usług i serwerów dostępnych w systemie Windows Standardowe komponenty systemu są pogrupowane w poszczególne karty
13 Komponenty ogólne Obsługujące interfejs użytkownika oraz wewnętrzne mechanizmy aplikacji. Tworzą ją karty: Standard – podstawowe elementy interfejsu użytkownika Additional – komponenty zaawansowane, częściowo przeznaczone do realizacji wewnętrznych funkcji programu Win31- elementy interfejsu użytkownika charakterystyczne dla 32-bitowych systemów Windows System – komponenty obsługujące funkcje wewnętrzne, jak pomiar czasu czy wymiana danych pomiędzy programami Dialogs – komponenty odpowiedzialne za obsługę okien dialogowych
14 Komponenty przeznaczone do obsługi baz danych karty Data Access i Data Controls zawierają podstawowe komponenty udostępniające zawartość bazy danych oraz bazodanowe elementy interfejsu użytkownika dbExpress, DataSnap, BDE, ADO oraz InterBase- udostępniają narzędzia do obsługi wielowarstwowych, rozproszonych baz danych wykorzystujących m.in.. język SQL oraz interfejsy BDE (Borland Database Engina) i ADO (Active Data Objects) Do prezentacji danych wykorzystywane są komponenty zawarte na kartach Decision Cube i Rave
15 Komponenty internetowe Komponenty ogólnointernetowe pogrupowano na kartach Internet i FastNet Karty z grup Indy Servers, Indy Clients, Indy Misc, Indy Intercepts, Indy i/O Handlers –zawierają obszerny zbiór komponentów ogólnego zastosowania znany pod nazwą Internet Direct Karty IW Standard, IW Data, IW Client Side oraz IW Control skupiają komponenty przeznaczone do tworzenia serwerów WWW Karta WebServises zawiera kilka komponentów realizujących standardowy protokół internetowy SOAP Karty InternetExpres i Web Snap udostępniają narzędzia do tworzenia internetowych aplikacji obsługujących bazy danych i wykorzystujących język XML
16 Otoczka dla usług i serwerów dostępnych w systemie Windows COM +, Serwers Samples przykładowe komponenty ActiveX- wyspecjalizowane komponenty wykorzystujące interfejs ActiveX Win3.1- elementy sterujące typowe dla 16- bitowych wersji Windows Programista może też wygenerować własne komponenty.
17 Oprogramowanie komponentu polega na: wskazaniu, w głównym oknie IDE, karty zawierającej wybrany komponent (myszą); wskazaniu komponentu na karcie (myszą); umieszczeniu komponentu w formularzu w wybranym miejscu (myszą); korekcie położenia i/lub wymiarów komponentu (myszą lub przez zmianą właściwości w oknie Inspektora obiektów); zasymulowanie zdarzenia (takim zdarzeniem jest np. przyciśnięcie przycisku) związanego z komponentem (przez kliknięcie myszą w obrębie komponentu) lub wybranie odpowiedniego zdarzenia w oknie Inspektora obiektów (przez kliknięcie myszą w obrębie zdarzenia w tym oknie), celem wygenerowania szkieletu kodu metody (tj. podprogramu lub funkcji) która będzie wykonywana po zaistnieniu zdarzenia; edycja kodu w potrzebnym zakresie (dopisanie odpowiednich instrukcji).
Najczęściej stosowane komponenty umieszczone na kartach: Standard oraz Additional
19 Frames (ramka zgrupowania komponentów; MainMenu (główne menu aplikacji - rozwijalne); PopupMenu (menu kontekstowe - nierozwijalne, normalnie niewidoczne - wizualizowane prawym klawiszem myszy); Label (etykieta - napis, nagłówek pola); Edit (pole edycyjne dla edycji jednego wiersza tekstu); Memo (pole memo - pole edycyjne dla edycji wielu wierszy tekstu); Button (przycisk); CheckBox (pole wyboru o 2 stanach: włączone, wyłączone. Kilka takich pól może służyć do wyboru opcji nie wyłączających się wzajemnie);
20 RadioButton (pole opcji służące do wyboru jednej z kilku wzajemnie wyłączających się opcji); ListBox (lista elementów, które użytkownik może zaznaczać lub wybierać); ComboBox (jak komponent ListBox, lecz z możliwością dopisywania elementów przez użytkownika); ScrollBar (pasek przewijania); GroupBox (komponent stanowiący grupę innych komponentów, najczęściej typu RadioButton lub CheckBox); RadioGroup (grupa komponentów typu RadioButton); Panel (komponent stanowiący grupę innych komponentów, najczęściej typu pasek narzędzi lub linia statusu). ActionList (lista odpowiedzi aplikacji na akcje użytkownika).
21 BitBtn (przycisk na którym jest umieszczony napis i/lub rysunek); SpeedButton (przycisk umieszczany w pasku narzędzi, o 4 wyróżnionych stanach oraz z rysunkiem zmieniającym się w poszczególnych stanach); MaskEdit (maskowane pole edycji, umożliwiające filtrację i formatowanie danych wprowadzonych przez użytkownika); StringGrid (arkusz, którego elementami są stringi); DrawGrid (arkusz do wyświetlania danych nie tekstowych); Image (komponent wyświetlający element graficzny - mapę bitową, ikonę lub metaplik); Shape (figura geometryczna: prostokąt, koło, elipsa); Bevel (zagłębiony lub wybrzuszony prostokąt);
22 ScrollBox (przewijalne okienko); CheckListBox (komponent będacy połączeniem listy i pola wyboru); Splitter (komponent słuący do podziału okna); StaticText (komponent jak Label, lecz zaopatrzony w ramkę); ControlBar (pasek narzędzi); ApplicationEvents (lista zdarzeń aplikacji); ValueListEditor (edytor listy danych); LabeledEdit (komponent Edit z etykietami); ColorBox (komponent ComboBox dla wyboru koloru);
23 Wspólne właściwości komponentów Name – nazwa komponentu. Każdy komponent ma swoją nazwę przez którą jest identyfikowany w programie. Caption – etykieta. Nazwa widoczna na komponencie. Własność tę mają niektóre komponenty widoczne Left, Top – położenie lewego górnego rogu komponentu względem lewego górnego rogu ekranu Width, Height – szerokość i wysokość komponentu Visible – widoczność. Po ustawieniu tej właściwości na False komponent staje się niewidoczny Hint – podpowiedź w chmurce. Tekst podpowiedzi pojawiający się po przytrzymaniu myszy na komponencie ShowHint – uwidacznia podpowiedź ustawioną w polu właściwości Hint
24 Wspólne zdarzenia komponentów OnClick – przy kliknięciu, to zdarzenie istnieje dla komponentów mogących przechwytywać aktywność OnDoubleClick – przy podwójnym kliknięciu – dla etykiet, formularza, panelu, pola Edit OnResize – przy zmianie rozmiaru – dla panelu, formularza OnMouseDown – przy przytrzymaniu myszy na komponencie
25 Wspólne zdarzenia komponentów OnMouseMove – przy przemieszczaniu komponentu myszą OnMouseUp – przy zwolnieniu przycisku myszy OnChange – przy zmianie w polu, istnieje dla komponentów wprowadzających dane, np. Edit, ComboBox, ListBox OnKeyDown – przy wciśnięciu klawisza na klawiaturze
26 Wspólne zdarzenia komponentów OnKeyPress – przy trzymaniu klawisza OnKeyUP – przy zwolnieniu trzymanego klawisza
27 Podstawowe właściwości formularzy ActiveControl – wskazuje na tę kontrolkę formularza która w danej chwili jest kontrolką aktywną. Właściwość tę można zarówno odczytywać jak i modyfikować.
28 Podstawowe właściwości formularzy BorderStyle – określa rodzaj obrzeża formularza i związane z nim możliwości manipulowania formularzem w czasie wykonywania programu. bsDialog – obrzeże typowe dla okien dialogowych bez możliwości zmiany rozmiaru bsSingle – zwykłe obrzeże bez możliwości zmiany rozmiaru bsNone – brak obrzeża bsSizeable – zwykłe obrzeże z możliwością zmiany rozmiaru bsTooWindow – obrzeże typowe dla okienka – palety narzędziowej bez możliwości zmiany rozmiaru bsSizeTooWin - jak bsTooWindow z możliwością zmiany rozmiaru
29 Podstawowe właściwości formularzy BorderIcon – definiuje zestaw ikon widocznych na obrzeżach formularza biSystemMenu – oznacza ikonę z lewej strony paska tytułowego, za pomocą której wyświetla się menu systemowe, biMinimize – oznacza przycisk minimalizacji biMaximize – oznacza przycisk maksymalizacji biHelp – oznacza przycisk oznaczony znakiem zapytania
30 Podstawowe właściwości formularzy FormStyle – określa styl formularza fsMDIChild – oznacza formularz potomny aplikacji wielodokumentowej fsMDIForm – oznacza formularz główny aplikacji wielodokumentowej fsStayOnTop – oznacza formularz pozostający zawsze na wierzchu fsNormal – określa wszystkie formularze inne niż zdefiniowane wcześniej
31 Podstawowe właściwości formularzy WindowState – określa postać okna powstającego z formularza wsNormal wsMinimized wsMaximized
32 Wybrane komponenty karty Dialogs ColorDialog – komponent wyświetla okno dialogowe wyboru koloru Komponent jest niewidoczny Do uaktywnienia komponenty służy metoda Execute. Metoda ta zwraca wartość True lub False w zależności czy dokonano wyboru koloru czy nie Właściwość komponentu Color udostępnia wybrany kolor
33 Przykład procedure TForm1.Button1Click(Sender: TObject); begin if ColorDialog1.Execute then Panel1.Color:=ColorDialog1.Color end;
34 Wybrane komponenty karty Dialogs FontDialog - komponent wyświetla okno dialogowe wyboru parametrów czcionki Komponent jest niewidoczny Do uaktywnienia komponenty służy metoda Execute. Metoda ta zwraca wartość True lub False w zależności czy dokonano wyboru parametrów czcionki czy nie Właściwość komponentu Font udostępnia wybraną czcionkę
35 Przykład procedure TForm1.Button2Click(Sender: TObject); begin if FontDialog1.Execute then Panel1.Font:=FontDialog1.Font; end;
36 Przykład procedure TForm1.Button2Click(Sender: TObject); begin if FontDialog1.Execute then Panel1.Font.Color:=FontDialog1.Font.Color; Panel1.Font.Size:=FontDialog1.Font.Size; end;