Zgryźliwość kojarzy mi się z radością, która źle skończyła.

Rozdział 11
Formularze
W tym rozdziale zbudujemy pozostałe formularze do wprowadzania i edycji
danych na potrzeby programu RENTMAN. Będą obsługiwały tabele TENANT,
PROPERTY, CALL, LEASE i WORDER. Skonstruowanie szerokiego wachlarza
różnych formularzy powinno być dobrym wstępem do późniejszej samodzielnej
pracy z narzędziami Delphi.
Formularze do edycji tabel TENANT i PROPERTY różnią się od innych użyciem
komponentu
DBControlGrid
. Służy on do wyświetlania, wsposób
tabelaryczny, wielu rekordów tego samego zbioru. Różnica między standardowym
DBGrid
a
DBCtrlGrid
polega na tym, że w przeciwieństwie do pierwszego,
drugi umożliwia przedstawienie jednego rekordu tabeli w kilku wierszach ekranu.
Formularzy korzystających z komponentu
DBGrid
użyjemy do tabel CALL
i WORDER.
Formularz TENANT
Ponieważ formularz
TENANT
dziedziczy właściwości
fmControlGridForm
, to
z menu Delphi wybieramy opcję
File\New
, klikamy na stronie
Forms
w okienku
dialogowym
New Items
, następnie wybieramy
fmControlGridForm
, klikamy
kolejno opcję
Inherit
izatwierdzamy przyciskiem
OK
. Formularz onazwie
fmControlGridForm1
powinien pojawić się wwizualnym projektancie
Delphi.
Zmieniamy nazwę formularza (
Name
) na
fmRTENCGD0
i nagłówek (
Caption
)
na
Tenant Edit Form
(formularz do edycji tabel TENANT). Z menu
File
wybieramy opcję
Use Unit
i dwukrotnie klikamy na liście w pozycji RENDATA.
Dzięki temu systemowy formularz modułu danych (
fmRENTMAN
) będzie dostępny
dla nowego formularza.
326
Część II
UWAGA
Jeśli kontrolki
fmControlGridForm
lub jakiegokolwiek jego rodzica zostały
zabezpieczone, to będą oczywiście zabezpieczone wprojekcie potomnym.
Możemy chcieć je odbezpieczyć, aby ułatwić sobie ich adjustację. Należy
wówczas zaznaczyć formularz, wybrać opcję Lock Controls z oferty Edit i usunąć
zaznaczenie. Kontrolki muszą być odblokowane jedynie wtedy, gdy wcześniej
zostały zabezpieczone albo wformularzu, albo wjednym zformularzy
nadrzędnych. Domyślnie dostęp do wszystkich elementów jest odblokowany.
Pierwszą rzeczą do wykonania jest zmiana rozmiarów formularza. Ustalamy
wysokość na 400 i szerokość na 565. Ułatwiamy w ten sposób umieszczenie na
blankiecie wielu pól tabeli TENANT.
Usuwanie elementów dziedziczonych
Na blankiecie znajdują się trzy przyciski dodane do
fmEditForm
. Ponieważ
formularz jest przeznaczony do szybkiego wprowadzania danych, nie będą
potrzebne. Mimo to nie można ich usunąć, gdyż Delphi nie pozwala na likwidację
dziedziczonych elementów kontrolnych. Istnieje jednak sposób umożliwiający
ukrycie ich praktycznie we wszystkich zastosowaniach i wykorzystanie do innych
celów zajmowanego przez nie miejsca na formularzu.
Klikamy panel środkowy i ustawiamy właściwości
Enabled
i
Visible
na
False
.
Ponieważ panel pełni rolę kontenera przechowującego trzy przyciski, to jego
wyłączenie wyłączy również jego elementy. Panel wyłącza się tylko wtedy, gdy
zaistnieje potrzeba usunięcia przycisków z formularza. Ustawiamy wyrównanie
panela (właściwość
Align
) na
alNone
, by przestał sobie rościć wyłączne prawo do
środkowej części formularza. Kolejno ustawiamy właściwość
Align
panelu górnego
na
alClient
i kończymy, klikając prawym klawiszem myszy na panelu środkowym,
wybierając z podręcznego menu opcję
Send to Back
.
Panel środkowy i jego
przyciski powinny zniknąć z formularza.
Wyjaśnijmy jeszcze, dlaczego nie można wyłączyć samych przycisków. Przede
wszystkim postawmy sobie pytanie: czy musimy rezygnować z klawiszy szybkiego
dostępu, nawet gdy odpowiadające im elementy nie są widoczne? Otóż bez
względu na to, czy przyciski widać, czy nie, ich klawisze szybkiego dostępu są
aktywne, dopóki nie zostaną wyłączone. Oznacza to, że wciśnięcie przycisku jest
równoważne z użyciem klawisza. Zasadniczo przycisk nie powinien być usuwany
całkowicie, aco najwyżej ukryty. Takie uzasadnienie można przyjąć do
wiadomości, choć trudno nie zgodzić się z opinią, że nie powinno się używać
ukrytych lub nieoznaczonych funkcji. Jeśli jakaś procedura jest rzeczywiście
ważna, to powinna być uwidoczniona na ekranie.
Formularze
327
Konfiguracja DBCtrlGrid
Następujące czynności służą do skonfigurowania komponentów nowego
formularza:
1. Uruchomić serwer bazy danych InterBase (o ile jeszcze nie działa).
2. Wcisnąć kombinację klawiszy SHIT+F12, aby uaktywnić okienko dialogowe
View Form
(widok formularza) i dwukrotnie kliknąć na module danych
dmRENTMAN
. Zarejestrować się na serwerze swoim identyfikatorem i hasłem.
3. Powrócić do formularza, wciskając ponownie klawisze SHIFT i F12 oraz
wybierając z listy odpowiedni formularz.
4. Wybrać komponenty
DBCtrlGrid
i
DBNavigator
oraz zmienić ich
właściwość
DataSource
na
dmRENTMAN.dsTENANT
; odznaczyć kontrolkę
DBNavigator
.
5. Tabela TENANT liczy jedenaście pól. Dziesięć z nich podlega edycji, a jedna
dostępna jest jedynie w trybie do odczytu. Umieścić na pierwszym z trzech
paneli
DBCtrlGrid
jeden komponent
DBText
i dziesięć komponentów
DBEdit
. Nie umieszczać niczego na panelach przekreślonych po przekątnej
szarymi liniami.
6. Ustawić wysokość każdego komponentu należącego do
DBCtrlGrid
na 19.
7. Umieścić na formularzu
DBCtrlGrid
jedenaście komponentów etykiet
i poukładać je nad każdą z wstawionych kontrolek.
8. Zakończyć ustawianie komponentów zgodnie ze wskazaniami tabeli 11.1 oraz
rysunkiem 11.1.
WSKAZÓWKA
Aby umieścić powtarzające się kontrolki bez wielokrotnego wracania do palety
komponentów, należy po wklejeniu każdego elementu:
1. Wcisnąć i trzymać klawisz SHIFT.
2. Kliknąć odpowiedni element palety (można zwolnić klawisz SHIFT).
3. Kliknąć na formularzu tyle razy, ile kopii składnika potrzebujemy.
4. Kliknąć na ikonce ze strzałką palety komponentów, aby zakończyć tryb
powtarzalnego wklejania składników.
328
Część II
Tabela 11.1. Komponent DBCtrlGrid i jego atrybuty
nazwa komponent szerokość Pole tabeli etykieta
dteTENANT_NUMBER DBText 30 TENANT_NUMBER No.
Nr
dedNAME DBEdit 121 NAME NAME
(Nazwisko)
dedHOMEPHONE DBEdit 90 HOMEPHONE HomePhone
Telefon
domowy
dedWORKPHONE DBEdit 90 WORKPHONE WorkPhone
Telefon
służbowy
dedICEPHONE DBEdit 90 ICEPHONE Emergency
Phone
Telefon
alarmowy
dedEMPLOYER DBEdit 121 EMPLOYER Employer
Pracodawca
dedEMPLOYERADRESS
DBEdit 121
EMPLOYERADRESS
Employer
Adress
Adres
pracodawcy
dedEMPLOYERCITY DBEdit 121 EMPLOYERCITY City
Miasto
dedEMPLOYERSTATE DBEdit 25 EMPLOYERSTATE State
Stan
dedEMPLOYERZIP DBEdit 90 EMPLOYERZIP Zip
Kod
dedCOMMENTS DBEdit 530 COMMENTS
Comments
Uwagi
Rysunek 11.1 ilustruje końcowy wygląd formularza
Formularze
329
Rysunek 11.1.
Nowy formularz
z komponentem
DBCtrlGrid.
WSKAZÓWKA
Jeśli chcemy zmienić jakąś właściwość kilku komponentów jednocześnie, to
można to zrobić następująco:
1. Kliknąć na pierwszym komponencie.
2. Wcisnąć i trzymać klawisz SHIFT.
3. Wybrać kolejne komponenty.
4. Wcisnąć klawisz F11, aby przenieść się do Inspektora Obiektów. Na liście będą
tylko właściwości wspólne dla wszystkich zaznaczonych komponentów.
Zmiana jednej wartości spowoduje zmianę we wszystkich zaznaczonych
elementach.
5. Można również kliknąć prawym klawiszem myszy na dowolnym
z zaznaczonych komponentów, aby otrzymać menu, umożliwiające działanie na
wszystkich wybranych elementach.
UWAGA
Kontrolka
DBEdit
, która nie jest podłączona do żadnego otwartego zbioru
danych, wyświetla swoją nazwę w okienku edycji i nie ma sposobu, aby ją usunąć
w czasie projektowania formularza. Dopiero podczas pracy, kontrolka oczyści
swoje pole edycji. Inaczej zachowują się komponenty Edit. Ich okna edycyjne
można oczyścić podczas projektowania, usuwając zawartość właściwości Text.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • hannaeva.xlx.pl