06.doc

(410 KB) Pobierz

 

Rozdział 6.
Praca
z Projektantem Formularzy i Projektantem Menu









S:\Robin\Delphi 4 dla kazdego\06.doc              217










Rozdzia³ 6. ¨ Praca z Projektantem Formularzy i Projektantem Menu              217

Jak już wiesz, podporą Delphi są formularze. Model ten pozwala maksymalnie wykorzystać zalety środowiska związanego z programowaniem wizualnym. Tematem tego rozdziału będą:

u                                          Projektant Formularzy (Form Designer)

u                                          Projektant Menu (Menu Designer)

Aby nauczyć się zasad używania Projektanta Formularzy, stworzysz aplikację zbliżoną do notatnika Windows (Windows Notepad). Po drodze zdobędziesz pewne doświadczenie w pracy z Projektantem Formularzy. W dalszej części rozdziału odkryjesz najmniejsze detale Projektanta Menu.

Jeśli już dużo pracowałeś z Delphi, rozdział ten może przedstawiać dla Ciebie wiedzę zbyt elementarną. Mimo to przyjrzyj mu się, aby odkryć rzeczy, o których być może wcześniej nie wiedziałeś – czy też przypomnieć sobie te, o których zdążyłeś zapomnieć. Mogę się założyć, że w rozdziale tym jest przynajmniej jedna rzecz, o której dotąd nie wiedziałeś.

Projektant formularzy (Form Designer)

Projektant formularzy jest potężnym narzędziem służącym do programowania wizualnego. Pozwala on nie tylko na umieszczanie komponentów na formularzu, wybieranie ich, przesuwanie i wyrównywanie, ale także na wiele innych operacji. Dzięki niemu możliwa jest zmiana pozycji i rozmiarów samego formularza, dodanie menu oraz budowa specjalistycznych okienek dialogowych – czyli wszystko czego potrzebujesz, aby stworzyć interfejs użytkownika dla typowego programu w Windows.

W następnych sekcjach tego rozdziału przedstawię wszystkie cechy Projektanta Formularzy. W trakcie czytania, gorąco zachęcam Cię do własnych eksperymentów związanych z zagadnieniami, na które zwrócisz szczególną uwagę. Czasami kilka minut zabawy może nauczyć czegoś, na co czeka się latami.

Menu kontekstowe Projektanta Formularzy

Kiedy po raz pierwszy uruchomisz Delphi, lub kiedy utworzysz nowy projekt, Projektant Formularzy będzie zawierał pusty formularz. Jak większość okien w Windows, także Projektant Formularzy posiada własne menu kontekstowe. Tabela 6.1 przedstawia listę zawierającą nazwy oraz opisy elementów menu kontekstowego Projektanta Formularzy.

Tabela 6.1. Elementy menu kontekstowego projektanta formularzy

Element

Opis

Align to Grid

Przyciąga wybrane komponenty do siatki Projektanta Formularzy

Bring to Front

Przenosi zaznaczone komponenty na wierzch wszystkich innych komponentów

Send to Back

Chowa wybrane komponenty pod wszystkimi innymi komponentami

Revert
to Inherited

Kiedy pracujesz z formularzem odziedziczonym z Repozytorium (Dziedziczenie formularzy z Repozytorium opiszę w rozdziale 8), powoduje powrót elementu kontrolnego do swego pierwotnego stanu

Align

Wyświetla okienko dialogowe Alignment, służące do wyrównywania komponentów na formularzu

Size

Wyświetla okienko dialogowe Size, służące do zmiany rozmiarów komponentów na formularzu

Scale

Wyświetla okienko dialogowe Scale, służące do skalowania komponentów na formularzu

Tab Order

Wyświetla okienko dialogowe Tab Order

Creation Order

Wyświetla okienko dialogowe Creation Order

Flip Children

Tylko dla wersji Windows różnych od angielskiej. Zmienia porządek czytania komponentu. Zablokowana w angielskiej wersji Windows.

Add to Repository

Dodaje aktualny formularz do Repozytorium. Formularze użytkownika mogą zostać zapisane do późniejszego wykorzystania.

View as Text

Pokazuje opis formularza w formie tekstu w Edytorze Kodu. Jeśli zechcesz, tekstową wersje formularza możesz poddać dowolnej edycji. Aby powrócić do formularza, z menu kontekstowego Edytora Kodu wybierz View as Form. Możesz użyć także klawisza Alt+F12, do przechodzenia między wersją tekstową w Edytorze Kodu, a formularzem

 

 

Dla każdego formularza Delphi tworzy plik formularza (.DFM) i umieszcza go w katalogu, w którym znajduje się twój projekt. Plik formularza jest zapisywany w formie binarnego zasobu trudnego do odczytania przez zwykłego „śmiertelnika”. Kiedy z menu kontekstowego wybierzesz View as Text, Delphi zamienia plik binarny na możliwą do odczytania formę. Kiedy przełączysz się z powrotem do formularza (View as Form), Delphi rekompiluje plik formularza, aby zaimplementować zmiany, których dokonałeś.

W dalszej części rozdziału opiszę większość opcji menu kontekstowego. Resztę przedstawię w późniejszych rozdziałach, omawiających tą część Delphi, której one dotyczą.

Umieszczanie komponentów na formularzu

Umieszczanie komponentu na formularzu jest bardzo proste. Wszystko, co musisz wykonać, to wybranie komponentu z Palety Komponentów, a następnie kliknięcie na formularzu w celu umieszczenia na nim komponentu. Kiedy klikniesz na formularzu, lewy górny róg komponentu zostanie umieszczony w miejscu kliknięcia. Zwróć uwagę na to, że gdy klikniesz przycisk na Palecie Komponentów, przycisk pozostanie w pozycji „naciśnięty”. Kiedy teraz klikniesz na formularzu w celu umieszczenia komponentu, przycisk powróci to swego pierwotnego stanu, tzn. takiego w jakim był  przed całą operacją.

 

W rozdziale 4. dowiedziałeś się, że aby mieć możliwość wielokrotnego umieszczania komponentów na formularzu, podczas jego pierwszego wyboru z Palety Komponentów musisz równocześnie trzymać przyciśnięty przycisk Shift. Kiedy to zrobisz, po umieszczeniu komponentu na formularzu jego przycisk znajdujący się na Palecie Komponentów będzie dalej wciśnięty, dzięki czemu będzie możliwe ponowne umieszczenie tego samego komponentu bez potrzeby ponownego wyboru. Za każdym razem, gdy klikniesz na formularzu, zostanie tam umieszczony komponent. W celu zaprzestania umieszczania tego samego komponentu naciśnij przycisk z symbolem strzałki, który znajduje się na palecie komponentów.

Większość komponentów może mieć zmieniane rozmiary. Możesz zmienić rozmiary komponentu zarówno po umieszczeniu go na formularzu, jak i podczas wykonywania tej czynności. Aby zmienić rozmiary podczas umieszczania komponentu na formularzu, wciśnij przycisk myszy w miejscu, gdzie ma się znajdować lewy górny róg komponentu, a następnie przeciągnij wskaźnikiem myszy aż do uzyskania właściwych rozmiarów. Kiedy zwolnisz przycisk, w miejsce zaznaczonego obszaru zostanie wstawiony komponent o ustalonych przez Ciebie rozmiarach.

Umieszczanie komponentów na formularzu jest o tyle proste, że chyba nie musisz temu tematowi poświęcać wiele czasu. Ponieważ w poprzednim rozdziale nabyłeś już pewne doświadczenie związane z umieszczaniem komponentów, nie zatrzymujmy się dalej nad tą sprawą.

Nie wszystkie komponenty mogą zostać potraktowane w ten sposób. Na przykład komponenty niewidoczne są reprezentowane na formularzu tylko przez ikonę. Chociaż możesz wcisnąć przycisk myszy, a następnie przeciągnąć kursorem w celu ustalenia rozmiarów, operacja ta zostanie zignorowana. W miejsce kliknięcia zawsze będzie wstawiona ikona o takiej samych rozmiarach. Innym przykładem jest komponent reprezentujący jednowierszowe pole edycji. Podczas wstawiania tego komponentu, możesz przeciągnąć kursor myszy. Mimo to, po umieszczeniu komponentu, zostaną tylko uwzględnione nowe rozmiary poziome. Szerokość komponentu pozostanie bez zmian.

 

Kiedy nagle zmienisz zdanie podczas umieszczania komponentu metodą przeciągania, przed zwolnieniem klawisza myszy, możesz nacisnąć klawisz Esc, aby anulować całą operację. Mimo, że operacja zostanie anulowana, przycisk komponentu na palecie komponentów pozostanie nadal wciśnięty. W takim przypadku jeśli zechcesz powrócić do trybu selekcji komponentów, będziesz musiał nacisnąć przycisk strzałki, który znajduje się na Palecie Komponentów.

Siatka Projektanta Formularzy

Projektant formularzy posiada wbudowaną siatkę, która pomaga w projektowaniu formularzy. Standardowo Delphi pokazuje tą siatkę. Początkowo rozmiar oczka siatki jest ustawiony na osiem pikseli w pionie oraz osiem pikseli w poziomie. Kiedy siatka jest włączona, w miejscu każdego przecięcia linii siatki zostaje wyświetlona kropka. Komponenty, które umieszczasz na formularzu, zostaną automatycznie przyciągnięte do najbliższego punktu siatki. Dokładnie chodzi mi tutaj o przyciąganie lewego górnego rogu komponentu do najbliższego punktu siatki. Siatka daje wiele korzyści. Często zależy Ci aby grupa komponentów stykała się krawędziami. Kiedy opcja Snap to Grid  jest włączona wystarczy tylko, że przeciągniesz element w pobliże właściwego położenia, a Projektant Formularzy automatycznie umieści go w najbliższym punkcie siatki. Dzięki temu oszczędzasz czas, który musiałbyś poświęcić na własnoręcznie ustawianie rozmiarów i pozycji komponentu.

Ustawienia siatki mogą być zmienione na karcie Preferences, która znajduje się w oknie dialogowym Environment Options (ustawienia środowiska). (Environment Options opiszę dokładnie w rozdziale 9.). Możesz tutaj wyłączyć lub włączyć siatkę (Snap to Grid) oraz zmienić jej rozmiary (Grid Size). Możesz także włączyć lub wyłączyć wyświetlanie siatki. Kiedy wyświetlanie siatki jest wyłączone, siatka razem ze wszystkim swoimi cechami pozostaje nadal aktywna (zakładam, że siatka jest włączona – zaznaczone pole Snap to Grid), jednak punkty siatki nie są wyświetlane na formularzu.

Zaznaczanie komponentów

Kiedy umieścisz komponent na formularzu, często musisz go zaznaczyć  w celu modyfikacji. Po zaznaczeniu komponentu, możesz wykonać następujące operacje:

u                                          Przesunięcie komponentu w inne miejsce

u                                          Zmiana właściwości komponentu

u                                          Wyrównanie komponentu

u                                          Zmiana rozmiarów komponentu

u                                          Wycięcie lub skopiowanie komponentu do Schowka

u                                          Ustalenie kolejności położenia komponentów („wyciągnięcie” na wierzch lub schowanie pod spód)

u                                          Usunięcie komponentu

Zaznaczanie pojedynczego komponentu

Aby zaznaczyć pojedynczy komponent, musisz na nim po prostu kliknąć. Kiedy zaznaczysz komponent, pojawi się wokół niego osiem czarnych uchwytów służących do zmiany jego rozmiarów. Uchwyty te świadczą o zaznaczeniu komponentu (za chwilę powiem więcej o tych uchwytach). Na rysunku 6.1 widać zaznaczony komponent Button. Gdy tylko zaznaczysz dany komponent, Inspektor Obiektów zmienia się tak, aby pokazać jego właściwości i zdarzenia. Aby anulować zaznaczenie komponentu możesz albo nacisnąć tło formularza, albo kliknąć komponent trzymając równocześnie naciśnięty klawisz Shift.

 

Z każdym komponentem zostaje powiązana domyślna procedura obsługi zdarzenia (bardziej prawidłowo należałoby powiedzieć: procedura obsługi domyślnego zdarzenia – przyp. red.). Kiedy klikniesz dwukrotnie na komponencie znajdującym się na formularzu, znajdziesz się w Edytorze Kodu, który będzie wskazywał szablon tej domyślnej procedury obsługi zdarzenia. Twoim zadaniem będzie wpisanie kodu tej procedury. W większości przypadków domyślnym zdarzeniem jest zdarzenie OnClick. Dokładny wynik dwukrotnego kliknięcia zależy od tego, jak komponent został zaprojektowany. Na przykład dwukrotne kliknięcie na komponencie Image wywołuje okno dialogowe Edytora Rysunków (Picture Editor).

Zaznaczanie grupy komponentów

Możesz zaznaczyć większą ilość komponentów, którą możesz traktować jak grupę. Wyboru tego możesz dokonać na trzy sposoby:

Rysunek 6.1.

Formularz z zaznaczonym komponentem Button

 

u                                          Naciśnięcie klawisza Shift i kliknięcie

u                                          Przeciągnięcie myszą

u                                          Wybór Edit | Select All z menu głównego

Aby zaznaczyć wszystkie komponenty na formularzu, wybierz Edit | Select All z głównego menu.

Wybór komponentów przy pomocy Shift+klik

Aby użyć sekwencji Shift+klik, wybierz najpierw jakiś element. Następnie trzymając wciśnięty klawisz Shift wybierz inne elementy, które mają być równocześnie wybrane. W celu oznaczenia przynależności do zbioru zaznaczonych komponentów, każdy komponent, który zaznaczyłeś jest otoczony przez cztery szare prostokąciki.

Jeśli chcesz usunąć dany komponent z zaznaczonego obszaru, możesz ponownie klik...

Zgłoś jeśli naruszono regulamin