Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie Wizualne WYKŁAD 2

Podobne prezentacje


Prezentacja na temat: "Programowanie Wizualne WYKŁAD 2"— Zapis prezentacji:

1 Programowanie Wizualne WYKŁAD 2
Wojciech Pieprzyca

2 Hierarchia klas biblioteki VCL
TObject TPersistent TComponent Komponenty niewidzialne widzialne TTimer, komponenty bazodanowe, sieciowe i inne TControl TGraphicControl TWinControl TButton i inne TPanel i inne

3 Hierarchia klas biblioteki VCL
Klasa TObject jest klasą nadrzędną dla wszystkich klas zawartych w bibliotece VCL tzn. wywodzą się z niej wszystkie pozostałe klasy. Bezpośrednim potokiem klasy TObject jest klasa TPersistant, która umożliwia zapisywanie obiektów do pliku, przydzielanie pamięci obiektom, itd. Klasa TComponent wyróżnia dwa rodzaje komponentów: komponenty widzialne oraz niewidzialne na formularzu. Dla komponentów widzialnych stworzono dodatkową klasę TControl związaną z wyświetlaniem komponentów w oknie programu.

4 Klasy dotyczące aplikacji i formularza
Z aplikacją związana jest klasa TApplication, a z formularzem klasa TForm. Obie klasy są potomkami klasy TComponent. TApplication – klasa ta realizuje podstawowe cechy funkcjonalne programu napisanego dla środowiska Windows. Zajmuje się ona obsługą komunikatów, implementuje system pomocy i zarządza elementami aplikacji takimi jak ikony, paski statusowe programu, podpowiedzi na przyciskach. Każda aplikacja tworzona w środowisku Borland Builder zawiera wskaźnik do klasy TApplication o nazwie Application.

5 Klasy dotyczące aplikacji i formularza
TForm – klasa ta definiuje formularz. Zawiera wiele właściwości i powiązanych zdarzeń. Przykładowe właściwości formularza: Name – nazwa formularza, Caption – tekst wyświetlany w pasku tytułowym programu, ClientHeight – wysokość formularza, ClientWidth – szerokość formularza, WindowState – określa stan okna po uruchomieniu programu: wsMaximized - okno zmaksymalizowane, wsMinimized - okno zminimalizowane, wsNormal – postać okna taka jak w procesie projektowania formularza. Position – inny sposób określania pozycji okna programu, m.in. ScreenCenter – środek ekranu,

6 Klasy dotyczące aplikacji i formularza *
Top – pozycja okna programu w pikselach względem górnej krawędzi ekranu, Left - pozycja okna programu w pikselach względem lewej krawędzi ekranu, Color – kolor obszaru formularza, Cursor – styl kursora wyświetlanego po uruchomieniu programu, Font – rodzaj czcionki dla elementów wyświetlanych na formularzu, HelpFile – określa nazwę pliku pomocy związanego z programem, Hint – określa podpowiedź pojawiającą się po zatrzymaniu kursora myszki nad komponentem, w tym przypadku nad formularzem, Icon – określa plik z ikoną wyświetlaną na pasku tytułowym.

7 Klasy dotyczące aplikacji i formularza *
Przykładowe zdarzenia związane z formularzem: onClick – kliknięcie formularza w dowolnym miejscu, onDblClick – podwójne kliknięcie formularza, onShow – pojawienie się formularza na ekranie, onClose – zamknięcie formularza, onResize – zmiana rozmiarów formularza, onMouseDown – naciśnięcie klawisza myszy na formularzu, onMouseUp – zwolnienie klawisza myszy po naciśnięciu, onMouseMove – poruszanie myszą, onKeyPress – naciśnięcie klawisza (traktowane jako jedno zdarzenie wraz ze zwolnieniem klawisza), onKeyDown – naciśnięcie klawisza onKeyUp – zwolnienie klawisza.

8 Komponenty standardowe
Komponenty standardowe znajdują się na zakładce Standard na palecie komponentów. Komponenty standardowe związane są z podstawowymi elementami interfejsu użytkownika. Label – etykieta do wyświetlania napisu tekstowego, Edit – jednoliniowe pole tekstowe, z możliwością wprowadzania danych, Memo – wieloliniowe pole tekstowe, również z możliwością wprowadzania danych,

9 Komponenty standardowe
MainMenu – służy do projektowania głównego menu, PopupMenu – w tym przypadku możemy stworzyć menu podręczne, widoczne po naciśnięciu prawego klawisza myszki, Button – przycisk, CheckBox – pole wyboru z dwiema możliwościami włączone/wyłączone,

10 Komponenty standardowe
RadioButton – pole wyboru z wieloma opcjami, ale umożliwiające wybór tylko jednej z nich, ListBox – lista elementów do wyboru, ComboBox – rozwijalna lista elementów do wyboru, ScrollBar – pasek przewijania,

11 Komponenty standardowe
GroupBox – grupuje na swoim obszarze inne obiekty, RadioGroup – grupuje komponenty RadioButton,

12 Komponenty standardowe *
Panel – podobnie jak GroupBox służy do grupowania komponentów, ActionList – zestaw akcji, które mogą być uruchamiane w reakcji na określone zdarzenia.

13 Komponenty dodatkowe (Addidtional) *
Komponenty te znajdują się na zakładce Additional na palecie komponentów. Znajdują się tutaj dodatkowe, rzadziej używane komponenty takie jak m.in. dodatkowe przyciski na których można umieszczać bitmapy (rysunki) – BitBtn oraz SpeedButton, komponent Image umożliwiający dodanie rysunku na ekranie, komponent Bevel umożliwiający dodawanie wypukłości i innych efektów wokół komponentów. komponenty StringGrid i DrawGrid do tabelarycznego prezentowania danych tekstowych i graficznych.

14 Elementy sterujące Win32 *
Komponenty te znajdują się na zakładce Win32 palety komponentów: Przykładowe komponenty tej kategorii: PageControl – zakładki umożliwiające wyświetlenie wielu stron w jednym formularzu, RichEdit – wzbogacony o dodatkową funkcjonalność komponent edycyjny, ProgressBar – pasek postępu, DataTimePicker – komponent do wyboru daty, MonthCalendar – komponent do wyboru daty w postaci kalendarza, Toolbar – pasek narzędziowy, StatusBar – pasek statusu (pasek na dole okna programu).

15 Pozostałe grupy komponentów
System – komponenty systemowe – Timer (licznik czasu), połączenia sieciowe klient-serwer, itp. DataAccess, DataControls, ADO, Interbase – komponenty bazodanowe umożliwiające nawiązywania połączeń z bazami danych i manipulowanie nimi oraz wyświetlanie informacji pobranych z bazy danych, QReport – komponenty umożliwiające tworzenie raportów na podstawie informacji pobieranych z bazy danych. Dialogs – podstawowe komponenty tworzące okna dialogowe takie jak okno zapisu/otwarcia pliku, okno wyboru koloru, okno drukowania, okno wyszukiwania/zamiany tekstu.

16 Kompilacja aplikacji Można wyróżnić 3 metody (polecenia) kompilacji w środowisku Builder C++: Polecenie Compile Unit – dotyczy kompilacji tylko bieżącego modułu tzn. tego którego treść wyświetlana jest aktualnie w edytorze kodu. Efektem kompilacji jest wygenerowanie kodu pośredniego kompilowanego modułu (nie są natomiast tworzone kody pośrednie innych modułów, ani plik wynikowy programu). Polecenie Make Project – kompiluje wszystkie moduły, których treść była zmieniana od czasu ostatniej kompilacji, a następnie łączy wszystkie pliki pośrednie do postaci finalnego pliku wykonywalnego programu. Polecenie Build Project – kompiluje wszystkie moduły, bez względu na to, czy były one modyfikowane oraz tworzy plik wykonywalny programu.

17 Kompilacja aplikacji W wyniku poprawnej kompilacji otrzymamy odpowiednie pliki z kodem pośrednim oraz w przypadku poleceń Make i Build także plik wynikowy – wykonywalny kod programu. W przypadku wystąpienia błędów kompilacji otrzymamy okno z komunikatem błędu. Błędy można podzielić na: Ostrzeżenia (Warnings) - mogą potencjalnie być przyczyną nieprawidłowego działania programu, jednak nie są ścisłym złamaniem zasad języka C++ i dlatego kompilacja w przypadku ostrzeżeń nie zostaje zatrzymana, a użytkownik jest jedynie informowany o potencjalnych zagrożeniach. Błędy składni języka C++ (Errors) - proces kompilacji jest wstrzymywany i kompilacja nie daje żadnych efektów oprócz listy znalezionych błędów.

18 Kompilacja aplikacji *
Okno z komunikatem o znalezionych ostrzeżeniach i błędach: Okno z listą wymienionych błędów kompilacji: Lista błędów i ostrzeżeń

19 Aplikacje wielomodułowe
Aplikacja wielomodułowa składa się z wielu współpracujących ze sobą modułów. Przykładem aplikacji wielomodułowej jest aplikacja składająca się z kilku formularzy. Każdy z formularzy traktowany jest jako osobny moduł programu (przełączanie między formularzami kombinacją klawiszy Shift+F12). W celu stworzenia nowego formularza należy wybrać z menu File opcję New Form. Spowoduje to wyświetlenie kolejnego formularza posiadającego takie same właściwości i metody jak formularz główny. Aby nowo utworzony formularz był widoczny z poziomu pozostałych formularzy, należy w każdym z plików źródłowych pozostałych formularzy dodać instrukcję dołączającą plik nagłówkowy nowego formularza.

20 Aplikacje wielomodułowe *
Instrukcja dołączająca plik nagłówkowy formularza ma postać: #include <nazwaForm.h>. Można ją dodać z poziomu środowiska Builder, wybierając opcję File/Include Unit Hdr, a następnie określając plik nagłówkowy formularza, który ma zostać dołączony. W celu wyświetlenia utworzonego formularza można użyć jednej z poniższych metod: nazwaForm->ShowModal() – wyświetla formularz w trybie modalnym (tryb wyłączności) tzn. do momentu jego zamknięcia nie ma możliwości odwołania się do pozostałych formularzy, nazwaForm->Show() – wyświetla formularz z możliwością pracy z kilkoma formularzami jednocześnie.

21 Okna dialogowe Okna dialogowe różnią się od zwykłych okien aplikacji m.in. tym, że: Mają zwykle ustalony, niezmienny rozmiar, Wyposażone są w przyciski takie jak OK, Anuluj W pasku tytułu okna dialogowe znajduje się tylko przycisk zamknięcia okna (nie ma przycisków minimalizacji i maksymalizacji okna), Czasami okno dialogowe podzielone jest na zakładki, Wyświetlane są w trybie modalnym tzn. żadne inne okno nie może być aktywne równocześnie z oknem modalnym.

22 Przykład okna dialogowe *
Prawie każda aplikacja w środowisku graficznym posiada w menu Pomoc opcję „O programie” wyświetlająca informację o autorze programu, jego tytule, itp. Spróbujmy utworzyć takie okno dialogowe. W tym celu tworzymy nowy formularz, z menu File wybieramy opcję New Form. Zmniejszamy wysokość i szerokość formularza do pożądanego rozmiaru. Ustalamy właściwość BorderStyle formularza na bsDialog, co spowoduje, że okno będzie nierozszerzalne, bez przycisków minimalizacji i maksymalizacji.

23 Przykład okna dialogowe
Wstawiamy na formularz przycisk (z zakładki Additional – komponent BitBtn). Ten rodzaj przycisku, pozwala ustalić typ przycisku i odpowiedni rysunek na nim. Wybieramy dla właściwości Kind wartość bkOK. Umieszczamy na formularzu komponent Label i wpisujemy odpowiednie informacje np. Program FormTester 1.0 Jan Kowalski © WSIIZ Bielsko-Biała, 2006 Umieszczamy na formularzu komponent Image z zakładki Additional. Ustalamy właściwość Picture tego komponentu na plik z wybranym rysunkim (np. pliki z ikonami z katalogu Program Files\Common Files\ Borland Shared\Images\Icons) oraz Autosize na true.

24 Przykład okna dialogowe
Zmieniamy nazwę drugiego formularza na oProgramieForm. Przechodzimy na formularz główny i z menu File wybieramy opcję Include Unit Hdr, a następnie wybieramy plik z definicją drugiego formularza, spowoduje to dołączenie tej definicji do pliku źródłowego formularza głównego Budujemy za pomocą komponentu MainMenu, menu składające się z menu Pomoc z opcją O programie. Naciskamy dwukrotnie na opcji menu O programie i przechodzimy do metody obsługi zdarzenia polegającego na kliknięciu tej opcji menu. Wpisujemy tam instrukcję: oProgramieForm->ShowModal().

25 Przykład okna dialogowe
Przykład okna dialogowego: Proszę zauważyć, że nie opracowywaliśmy metody obsługi zdarzenia kliknięcia na przycisku OK, a mimo to przycisk ten działa poprawnie i zamyka okno dialogowe. Dzieje się tak, gdyż użyliśmy przycisku typu BitBtn i ustawiliśmy odpowiednio jego rodzaj (Kind – bkOK).

26 Aplikacje wielodokumentowe
Możemy wyróżnić dwa rodzaje aplikacji: Aplikacje jednodokumentowe (SDI – Single Document Interface) – komunikacja z użytkownikiem odbywa się za pomocą jednego okna głównego z dodatkowymi oknami dialogowymi, Aplikacje wielodokumentowe (MDI – Multiple Document Interface) – aplikacja taka posiada jedno okno główne (MDI parent), komunikacja z użytkownikiem realizowana jest z wykorzystaniem tzw. okien potomnych (MDI Children). W aplikacjach wielodokumentowych okna potomne można przemieszczać tylko w ramach okna głównego, dodatkowo często programowo ustala się sposób ich rozmieszczenia (np. sąsiadująco, kaskadowo).

27 Aplikacje wielodokumentowe
W celu stworzenia aplikacji wielomodułowej należy zaprojektować okno główne i ustalić jego właściwość FormStyle na fsMDIForm, a następnie szereg okien potomnych z ustalona właściwością FormStyle na fsMDIChild. Domyślnie okna potomne są wszystkie widoczne i rozmieszczone na formularzu głównym w widoku kaskadowym.

28 Aplikacje wielodokumentowe
Aby okna potomne nie były automatycznie widoczne po uruchomieniu aplikacji, należy przejść do menu Projects i wybrać element Options. Na zakładce Forms, ustala się które formularza mają być automatycznie tworzone (Auto-create forms), a które mają być dostępne, ale nie wyświetlane (Available forms). Uwaga! Jeżeli okna potomne nie będą automatycznie pokazywane na formularzu głównym, to przed ich wyświetleniem konieczne jest stworzenie nowego obiektu klasy formularza, który chcemy wyświetlić np. Form2 = new TForm2(this); Form2->Show();

29 Aplikacje wielodokumentowe
Należy zwrócić uwagę, że naciśnięcie ikony zamknięcia w pasku tytułu okna potomnego, domyślnie nie powoduje zamknięcia okna, a tylko jego minimalizację. Jest to zgodne ze standardem dla okien typu MDI opracowanym przez Microsoft. Aby można było normalnie zamykać okna potomne, należy napisać metodę obsługi zdarzenia onClose zawierającą poniższą linię kodu: Action = caFree; Form2 = NULL; W ten sposób aplikacja zostaje zmuszona do zamknięcia okna potomnego.

30 Aplikacje wielodokumentowe *
Do automatycznego rozmieszczenia okien w jednym z domyślnych widoków można użyć wbudowanych funkcji: Cascade() – rozmieszczenie kaskadowe, okna zachodzą na siebie, Tile() – rozmieszczenie sąsiadujące, wyświetla wszystkie okna potomne na formularzu głównym, każdemu przydzielając równy obszar okna, ArrangeIcons() – wyrównuje ikony okien potomnych po minimalizacji.


Pobierz ppt "Programowanie Wizualne WYKŁAD 2"

Podobne prezentacje


Reklamy Google