Ćwiczenie1, Sprawozdania, Instrukcje labolatoryjne


1. Wstęp

Delphi jest narzędziem do szybkiego tworzenia aplikacji RAD (Rapid Application Development ) dla Windows. Przy pomocy Delphi w łatwy i szybki sposób można pisać programy dla Windows, działające zarówno w trybie terminalowym (tryb konsoli), jak
i w trybie graficznym. Jest to proste w użyciu narzędzie do sterowanego zdarzeniami programowania aplikacji obiektowych. Podstawowym językiem programowania jest Object Pascal wzbogacony przez środowisko Delphi o siłę graficznego interfejsu użytkownika.

2. Opis środowiska IDE (Integrated Development Environment)

0x08 graphic
Rys.1 Środowisko IDE

Po pierwszym uruchomieniu programu IDE wygląda tak jak pokazano na rys1.
W górnej części ekranu jest główne okno IDE. Zawiera ono pasek narzędzi i paletę komponentów. Pasek narzędzi umożliwia szybki dostęp do najczęściej wykorzystywanych opcji takich jak otwieranie, zapisywanie i kompilacja projektu. Paleta komponentów zawiera duży wybór podzielonych tematycznie komponentów (np. etykiet, pól edycyjnych, przycisków itd.), które można przenosić na formularz za pomocą myszy. Na palecie jest szereg zakładek co umożliwia łatwe i szybkie znalezienie komponentu. Na środowisko IDE składają się dodatkowo projektant formularzy, edytor kodu, inspektor obiektów i eksplorator kodu.

2.1. Komponenty

Komponent jest samodzielnym elementem biblioteki wykonującym określoną predefiniowaną funkcję. Komponentem jest np. etykieta, lista wyboru, pole edycji, przycisk. Dostępne w Delphi komponenty przedstawia rys.2.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Rys.2. Komponenty2.2. Podstawowe komponenty

2.2.1. Karta standard

Opis

Nazwa polska

Przeznaczenie

MainMenu

Menu główne

Powoduje umieszczenie paska menu wzdłuż górnej krawędzi formularza.

PopupMenu

Menu podręczne

Pozwala zaprojektować menu podręczne, kojarzone
z kontrolkami i pojawia się po kliknięciu przez użytkownika prawym przyciskiem myszy.

Label

Etykieta

Powoduje umieszczenie etykiety dla innych składników lub zwykłej pojedynczej linii tekstu, który zwykle nie jest zmieniany.

Edit

Pole edycji

Powoduje wyświetlenie obszaru, w którym użytkownik lub program może wprowadzić pojedynczą linię tekstu.

Memo Box

Wielowierszowe pole memo

Powoduje wyświetlenie obszaru, w którym użytkownik, lub program może wprowadzić kilka linii tekstu.

Button

Przycisk

Tworzy prosty przycisk polecenia.

CheckBox

Pole wyboru

Tworzy opcję, która może być włączona lub wyłączona.

RadioButton

Przycisk opcji

Służy do tworzenia grup opcji, które się wykluczają.

ListBox

Pole listy

Wyświetla listę z pozycjami do wyboru.

ComboBox

Pole kombo

Jest połączeniem pola listy i pola edycji dzięki temu użytkownik może wybrać jedną z pozycji lub wpisać nową.

ScrollBar

Pasek przewijania

Umożliwia przewijanie listy pozycji do wyboru

GroupBox

Pole grupy

Służy do grupowania elementów, by zachowywały się jako całość.

RadioGroup

Grupa opcji

Pole grupy przeznaczone specjalnie dla zestawu przycisków opcji.

Panel

Panel

Główne pole służące do grupowania innych składników.

2.2.2. Karta Additional

Opis

Nazwa polska

Przeznaczenie

BitButton

Przycisk z mapą bitową

Tworzy przycisk, na którym może być umieszczona grafika.

SpeedButton

Przycisk z ikoną

Tworzy przycisk, na którym można wyświetlić ikonę (mapę bitową lub rysunek), lecz nie napis.

MaskEdit

Pole edycji z maską

Tworzy pole edycji, w którym możliwa jest weryfikacja wprowadzonych danych za pomocą maski. Pole może na przykład pozwalać na wpisywanie tylko cyfr, lub tylko liter.

StringGird

Siatka tekstowa

Tworzy siatkę, w której dane tekstowe mogą być przedstawiane w postaci wierszy i kolumn.

DrawGird

Siatka rysunkowa

Tworzy siatkę, w której dane są przedstawiane w postaci wierszy i kolumn.

Image

Grafika

Powoduje wyświetlenie grafiki ( mapy bitowej, ikony)

Shape

Figura

Pozwala nakreślić figurę geometryczną wybraną spośród kilku innych.

CheckListBox

Lista pól wyboru

Jest to połączenie pola listy i grupy pól wyboru.

2.2.3. Karta Dialogs

Opis

Nazwa polska

Przeznaczenie

OpenDialog

Otwórz

Pozwala korzystać z okna dialogowego do otwierania pliku.

SaveDialog

Zapisz

Pozwala korzystać z okna dialogowego do zapisywania pliku.

OpenPictureDialog

Otwórz rysunek

Pozwala korzystać z okna dialogowego do otwierania pliku. Dodatkowo dostępny podgląd pliku.

SavePictureDialog

Zapisz rysunek

Pozwala korzystać z okna dialogowego do zapisywania pliku. Dodatkowo dostępny podgląd pliku.

FontDialog

Czcionka

Pozwala korzystać z okna dialogowego do ustawiania atrybutów czcionki.

ColorDialog

Kolor

Pozwala korzystać z okna dialogowego do wybierania kolorów.

PrintDialog

Drukuj

Pozwala korzystać z okna dialogowego do wysyłania danych na drukarkę.

PrinterSetupDialog

Ustawienia drukarki

Pozwala korzystać z okna dialogowego do określania ustawień drukarki.

Find Dialog

Znajdź

Pozwala korzystać z okna dialogowego do wyszukiwania tekstu.

ReplaceDialog

Zamień

Pozwala korzystać z okna dialogowego do wyszukiwania i zmiany tekstu.

2.2.4

Karta System

2.2.5

Karta Data Access

2.2.6.

Karta Data Controls

2.2.7.

Karta Win32

2.3. Inspektor obiektów

Poniżej głównego okna w lewej części ekranu jest tzw. Inspektor Obiektów. Za jego pomocą możesz modyfikować zdarzenia i właściwości związane z poszczególnymi komponentami. W czasie pracy z Delphi wykorzystuje się go niemal bez przerwy. Inspektor obiektów podzielony jest na dwie części: kartę Properties ( właściwości) i kartę Events (zdarzenia).

Właściwości komponentu określają wygląd i zachowanie się komponentu. Na przykład zmiana właściwości Color dla jakiegoś komponentu powoduje zmianę koloru jego tła. Właściwości są różne dla różnych komponentów, lecz wszystkie komponenty mają kilka wspólnych właściwości, np. Width i Height. Przykładowe właściwości przedstawia rys.3

0x08 graphic
Rys.3 Przykładowe właściwości

Karta Events zawiera listę zdarzeń komponentu. Zdarzenie zachodzi, gdy użytkownik lub system wykonuje jakąś akcję dotyczącą komponentu. Na przykład kiedy użytkownik kliknie myszą w obszarze komponentu. Dla każdego zdarzenia można napisać procedurę obsługi, która wykonuje określone akcje jeżeli zdarzenie wystąpi. Podobnie jak dla właściwości zestawy zdarzeń są różne dla różnych komponentów. Przykładowy zestaw zdarzeń i właściwości przedstawia rys.4.

0x08 graphic
0x08 graphic

Rys.4. Przykładowe zdarzenia

2.4. Przestrzeń robocza

Główną część Delphi IDE stanowi przestrzeń robocza. Bezpośrednio po uruchomieniu pakietu na przestrzeni roboczej umieszczony jest Projektant Formularzy. Formularz jest to okno wyświetlone na ekranie po uruchomieniu skompilowanego programu. Projektant Formularzy umożliwia umieszczanie, przesuwanie, skalowanie komponentów umieszczanych na formularzu. Bezpośrednio pod Projektantem formularzy znajduje się Edytor Kodu. Wpisuje się w nim i edytuje kod tworzonej aplikacji. Wszystkie elementy IDE: inspektor obiektów, edytor kodu, projektant formularzy i paleta komponentów ściśle współpracują ze sobą w czasie tworzenia programu.

2.4.1.1.Formularze

Formularze są głównym elementem składowym aplikacji Delphi. Każda aplikacja posiada przynajmniej jeden formularz, który jest jednocześnie oknem głównym tej aplikacji. Formularz główny może być po prostu pusty, może zawierać jakieś kontrolki, lub może być na nim wyświetlona mapa bitowa. Typowe okno główne programu w Windows posiada menu. Może posiadać takie elementy jak pasek narzędzi czy pasek statusu. Wszelkie dodawane elementy muszą być zgodne z charakterem i potrzebami aplikacji. Klasa Tform, której są formularze posiada bardzo wiele różnych właściwości. Niektóre z nich są mało znane i rzadko wykorzystywane, inne są używane powszechnie. Część z nich jest ustawiana w trakcie projektowania aplikacji, inne są dostępne jedynie w czasie działania programu. Wykaz właściwości ustawianych w czasie projektowania aplikacji wraz z opisem przedstawia tabela 1.

Właściwość

Opis właściwości

ActivControl

Umożliwia wyróżnienie danego komponentu w momencie aktywacji formularza. Na przykład jeżeli potrzeba aby dane pole edycyjne było aktywne w momencie wyświetlenia okna formularza należy ustawić je jako aktywne. W trakcie projektowania dostępna jest lista umieszczonych na nim komponentów, z których jeden możemy wyróżnić.

AutoScroll, HorzScrollBar, VertScrollBar

Właściwości te odpowiadają za paski przewijania formularza. Jeżeli AutoScroll jest ustawiona na True i formularz jest za mały aby pomieścić wszystkie umieszczone na nim komponenty to automatycznie pojawiają się na jego dolnej
i prawej krawędzi paski przewijania. Właściwości HorzScrollBar i VertScrollBar mają zestaw własnych właściwości, które określają wygląd i sposób działania pasków przewijania.

BorderIcons

Właściwość ta określa, które z systemowych przycisków mają się pojawić na pasku tytułowym formularza podczas działania programu. Do wyboru są menu systemowe, przycisk minimalizacji, przycisk maksymalizacji i przycisk pomocy.

BorderStyle

Właściwość ta ustawia typ ramki, którą będzie posiadał formularz podczas wykonywania programu. Wartość domyślna to bsSizeable co oznacza, że rozmiar i położenie formularza będą mogły być zmieniane przez użytkownika programu. Style ramki, w których zmiana rozmiarów okna nie będzie możliwa to bsDialog i bsNone.

ClientWidth, ClientHeight

Właściwość ta umożliwia zdefiniowanie tzw. obszaru klienckiego (obszaru wewnątrz ramki i poniżej paska tytułowego i paska menu) zamiast definiowania szerokości
i wysokości całego formularza. Przypisanie wartości tym właściwościom powoduje automatyczne dopasowywanie się wymiarów okna.

Constrains

Właściwość ta używana jest do określania minimalnej
i maksymalnej szerokości i wysokości formularza. Poszczególne rozmiary ustala się wpisując je wprost do właściwości MaxHeight, MaxWidth, MinHeight i MinWidth.

DefaultMonitor

Właściwość ta używana jest do określenia na którym monitorze zostanie wyświetlony dany formularz
(w środowisku z więcej niż jednym monitorem np. Windows98).

DockSite

Właściwość ta mówi o tym czy na danym formularzu można dokować, czyli przemieszczać w trakcie wykonywania programu poszczególne komponenty.

Font

Właściwość, która określa jakich czcionek używa dany formularz. Należy zwrócić uwagę na fakt, że właściwość tę dziedziczą wszystkie komponenty ustawione na formularzu
i można zmienić czcionkę wszystkich komponentów danego formularza przez zmianę właściwości Font formularza. Jeżeli dla któregoś komponentu ręcznie zmienimy czcionkę, to nie będzie się ona już zmieniać wraz ze zmianami na formularzu.

FormStyle

Właściwość ta zwykle ustawiona jest na fsNormal. Jeżeli wymagane jest aby dany formularz pozostawał zawsze na wierzchu, należy ustawić tę właściwość na fsStayOnTop. Formularze MDI muszą mieć właściwość FormStyle ustawioną na fsMDIForm, a formularze podporządkowane MDI- fsMDIChild.

HelpContext,

HelpFile

Właściwość HelpContext używana jest do ustawiania identyfikatora pomocy kontekstowej dla danego formularza. Jeżeli pomoc kontekstowa jest włączona po naciśnięciu klawisza F1 uaktywni się System Pomocy Windows. Identyfikator jest potrzebny do określenia która strona pliku pomocy ma być wyświetlona.

Właściwość HelpFile zawiera nazwę pliku pomocy użytego po naciśnięciu F1.

Icon

Właściwość ta ustawia ikonę wyświetloną na pasku tytułowym formularza w czasie wykonywania programu oraz na pasku zadań, w czasie gdy program jest zminimalizowany. Czasem właściwość ta jest ignorowana, np. gdy FormStyle ustawiony jest na fsDialog.

KeyPreview

Właściwość ta ustawiona na True powoduje, że będzie generowane zdarzenie OnKeyPress i OnKeyDown gdy użytkownik naciśnie jakiś klawisz w którymkolwiek komponencie na formularzu.

Position

Właściwość ta określa początkowy rozmiar i położenie formularza na ekranie. Można wybrać jedną z trzech wartości:

PoDesigned- formularz dokładnie tak ustawiony jak w czasie projektowania, poDefault - pozwala systemowi Windows na ustawienie rozmiaru i pozycji formularza według specjalnego algorytmu, poScreenCenter - oznacza wyświetlanie formularza na środku ekranu.

Visible

Właściwość ta określa czy formularz jest widoczny czy nie na ekranie. W czasie działania programu można za pomocą tej właściwości ukrywać albo wyświetlać formularz i sprawdzać stan aktualny.

WindowState

Można używać tej właściwości do odczytywania aktualnego stanu formularza. Określa również sposób w jaki formularz ma być wyświetlony po jego utworzeniu. Dostępne wartości to wsMinimized, wsMaximized, wsNormal.

Właściwości ustawiane w czasie działania programu przedstawia tabela 2.

Właściwość

Opis właściwości

Active MDIChild

Jest to właściwość tylko do odczytu. Zawiera wskaźnik do aktywnego okna podporządkowanego MDI. Jeżeli akurat nie istnieje takie okno lub aplikacja jest typu SDI, wskaźnik ten ma wartość nil.

Canvas

Jest to obszar roboczy formularza (powierzchnia, na której można rysować bitmapy, linie, kształty czy tekst).

ClientRect

Właściwość ta zawiera współrzędne górnej, prawej, lewej
i dolnej krawędzi obszaru klienckiego formularza.

Handle

Zawiera uchwyt okna danego formularza.

ModalResult

Właściwość, która określa w jaki sposób zostało zamknięte modalne okno dialogowe. Jeżeli posiada ono przyciski OK
i Cancel, to właściwości tej można przypisać mrOK żeby zasymulować wciśnięcie klawisza OK., lub mrCancel, żeby zasymulować wciśnięcie przycisku Cancel. Inne możliwości to: mrYes, mrNo, mrAbort. Właściwości tej można używać do sprawdzania co zostało wciśnięte.

Owner

Zawiera wskaźnik do właściciela danego formularza. Właściciel formularza jest to obiekt odpowiedzialny za usunięcie formularza gdy nie jest on już potrzebny. Z kolei rodzic danego komponentu jest to okno (formularz albo inny komponent), który zawiera dany komponent. W przypadku okna głównego, obiekt typu aplikacja jest zarówno właścicielem jak i rodzicem okna. W przypadku komponentów ich właścicielem jest formularz, na którym są umieszczone, zaś rodzicem może być inny komponent.

Parent

Zawiera wskaźnik do rodzica danego formularza

Metody formularzy przedstawia tabela 3

Metoda

Opis metody

BringToFront

Metoda ta powoduje przesunięcie danego formularza na wierzch
( ponad inne przykrywające go).

Close, CloseQuery

Metoda Close wywołuje metodę CloseQuery aby się upewnić, że można zamknąć formularz i zamyka go. Funkcja CloseQuery
z kolei wywołuje metodę obsługi zdarzenia OnCloseQuery. Jeżeli zmienna typu Boolean przekazywana do niej ma wartość False, formularz nie jest zamykany, w przeciwnym przypadku jest. Metodę obsługi zdarzenia OnCloseQuery można wykorzystać np. do wyświetlania komunikatu dla użytkowników informującego
o konieczności zamknięcia wszystkich plików, lub do sprawdzenia własnego warunku zamknięcia formularza.

Print

Metoda ta służy do drukowania zawartości obszaru klienckiego formularza ( bez paska tytułowego, menu i ramek) na drukarce.

ScrollInView

Metoda ta przewija zawartość formularza tak, żeby określony komponent stał się widoczny.

SetFocus

Metoda ta powoduje aktywację formularza i przesunięcie go na wierzch. Jeżeli na formularzu jest jakiś komponent wskazany we właściwości ActiveControl formularza, jest on aktywowany.

Show, ShowModal

Metody te służą do wyświetlania formularza na ekranie. Metoda Show wyświetla formularz jako niemodalny ( inne formularze mogą być aktywowane w czasie gdy dany formularz jest wyświetlony), natomiast ShowModal wyświetla formularz jako modalny (okno modalne należy zamknąć aby możliwa była dalsza praca z aplikacją.

Zdarzenia formularza przedstawia tabela 4.

Zdarzenie

Opis zdarzenia

OnActivate

Zdarzenie to zachodzi gdy formularz jest po raz pierwszy aktywowany. Formularz może być aktywowany w wyniku jego utworzenia lub kiedy użytkownik przełącza się pomiędzy formularzami

OnClose, OnCloseQuery

Kiedy aplikacja jest zamykana generowane jest zdarzenie OnClose. Zdarzenie to generuje zdarzenie OnCloseQuery. Jeżeli OnClose Query zwraca wartość False, formularz nie jest zamykany.

OnCreate

Zachodzi w momencie utworzenia formularza w trakcie działania programu. Dla każdego formularza zdarzenie to może zajść tylko jeden raz. Zdarzenia tego używa się do przeprowadzania wszelkich czynności , które są niezbędne do prawidłowego działania formularza.

OnDestroy

Zdarzenie przeciwne do OnCreate. Wywoływane zwykle przy niszczeniu formularza. Używa się go do zwalniania wszelkiej przydzielonej dynamicznie pamięci, lub innych końcowych czynności.

OnDragDrop

Zdarzenie to generowane jest w przypadku gdy na formularzu upuszczany jest jakiś obiekt. Zdarzenie to ma znaczenie przy włączonej obsłudze Drag and drop formularza.

OnMouseDown, OnMouseMove, OnMouseUp

Zdarzenia te generowane są przy klikaniu lub poruszaniu się myszą w obszarze formularza.

OnPaint

Zdarzenie to generowane jest, gdy zachodzi potrzeba odświeżania formularza na ekranie. Czasem trzeba przerysować jakieś elementy graficzne na formularzu.

OnResize

Zdarzenie generowane po każdej zmianie rozmiarów formularza. Może przydać się czasami do korekty położenia komponentów na formularzu lub do jego przerysowania.

OnShow

Zdarzenie zachodzi na moment przed wyświetleniem formularza na ekranie.

Przebieg ćwiczenia

  1. Utwórz katalog, w którym znajdą się pliki do tego projektu i uruchom Delphi.

  2. Na ekranie pojawi się okno projektu formularza o nazwie Form1. Za pomocą Inspektora Obiektów zmień właściwość Caption na Mój pierwszy program. Aby to osiągnąć, zaznacz formularz, wybierz odpowiednią kartę w oknie inspektora obiektów, przewiń listę tak, by wyświetlić opcję Caption i kliknij ją. Tekst Form1 zastąp swoim.

  3. Umieść na formularzu przycisk Button1 - w tym celu kliknij ikonę przycisku na karcie Standard palety składników, a następnie kliknij formularz. W razie potrzeby zmień położenie przycisku przeciągając go myszą.

  4. Zmień napis na przycisku, odpowiednio zmieniając jego właściwość Caption.

  5. Dodaj drugi przycisk Button2, ustaw go odpowiednio i zmień jego nazwę.

  6. Wprowadź etykietę. Zmień właściwość Caption etykiety na Witaj w Delphi. Właściwość Visible etykiety ustaw na False. Etykieta nadal będzie widoczna w oknie projektanta formularzy lecz już nie w trakcie wykonywania programu.

  7. Zapisz wszystko (Save All) nadając poszczególnym plikom odpowiednie nazwy

  8. W oknie inspektora Obiektów wybierz kartę Events dla przycisku Button2. Kliknij dwukrotnie obok zdarzenia OnClick. Spowoduje to otwarcie okna edytora kodu.

  9. Między begin i end wpisz instrukcję: Close;

  10. W oknie inspektora Obiektów wybierz kartę Events dla przycisku Button1. Kliknij dwukrotnie obok zdarzenia OnClick. Spowoduje to otwarcie okna edytora kodu.

  11. Między begin i end wpisz instrukcję: Label1.Visible:= True;

  12. Ponownie zapisz program korzystając z Save All.

  13. Wybierz przycisk Run lub F9 i uruchom napisaną przez siebie aplikację.

Warunki zaliczenia

Warunkiem zaliczenia ćwiczenia jest rozwiązanie zadania podanego przez prowadzącego. Po zakończeniu pracy każdy program powinien zostać zapisany
w odpowiednim katalogu. Pliki zapisane w innym niż podany przez prowadzącego katalogu nie będą sprawdzane.

1

1



Wyszukiwarka