03.Rozdziaę 02b.pdf

(1674 KB) Pobierz
33670543 UNPDF
54
Część I
Rysunek 2.14.
Nowy formularz
z komponentami
TTable
i TDataSource .
Po przygotowaniu komponentów TTable i TDataSource można przystąpić do
umieszczania na formularzu kontrolek powiązanych z danymi. Kontrolki takie są
elementami interfejsu użytkownika, powiązanymi ztabelami baz danych.
Wykazują duże podobieństwo do typowych kontrolek, spotykanych we wszystkich
aplikacjach Windows, ztym że realizują dodatkowo funkcje pobierania
i zapisywania danych w bazie. Na przykład kontrolka TEdit służy do edycji
wierszy tekstu. Delphi oferuje również analogiczny komponent, powiązany
z danymi, noszący nazwę TDBEdit . Zachowuje się on tak samo jak TEdit , tyle
że służy do edycji kolumny baz danych. Prezentuje na ekranie dane
przechowywane aktualnie w kolumnie i zapisuje w kolumnie wszelkie zmiany
wprowadzone przez użytkownika.
Jako pierwszą można na formularzu umieścić kontrolkę TDBNavigator .
Dostępna jest ona na stronie Data Controls palety komponentów Delphi.
Komponent TDBNavigator należy umieścić na górnym panelu formularza.
Atrybut DataSource TDBNavigatora powinien wskazywać na źródło
danych TDataSource , umieszczone uprzednio na formularzu. Omawiane
czynności ilustruje rysunek 2.15.
W dalszej kolejności na formularzu ulokować można pozostałe kontrolki danych.
Zadanie to można zrealizować na dwa sposoby. Pierwszy - bardziej kłopotliwy -
polega na umieszczaniu komponentów TDBEdit , TDBMemo , itd. na formularzu,
ustalaniu wartości ich atrybutów DataSource i DataField , wreszcie -
opisaniu kontrolek przy pomocy komponentów TLabel . Metoda ta jest bez
wątpienia skuteczna, można jednak obrać znacznie prostszą drogę.
33670543.001.png
Szybki start
55
Rysunek 2.15.
Formularz
z umieszczonym
komponentem
TDBNavigator.
Szybsza metoda sprowadza się do przeciągnięcia komponentów TField z edytora
pól Delphi (Fields Editor) na formularz. Po umieszczeniu komponentu TField na
formularzu, Delphi automatycznie utworzy odpowiednią kontrolkę powiązaną
z danymi i opisującą ją etykietę. Aby skorzystać z tej metody przygotowania
formularza należy:
1. Podwójnie kliknąć na komponencie TTable , co spowoduje wywołanie edytora
pól (Fields Editor).
2. Kliknąć prawym klawiszem myszy w oknie edytora pól i wybrać opcję Add
fields (Dodaj pola).
3. Gdy na ekranie pojawi się lista pól, kliknąć OK , co spowoduje dodanie
wszystkich pól.
4. Pola pozostaną podświetlone w oknie Fields Editor . Należy je teraz przeciągnąć
na formularz. Dla każdego pola utworzona zostanie nowa kontrolka powiązana
z danymi i etykieta TLabel .
Na rysunku 2.16 pokazano przykładowy formularz ze wszystkimi kontrolkami
i etykietami.
Nasz nowy formularz jest w zasadzie gotowy. Opisane powyżej czynności
doprowadziły do utworzenia formularza identycznego z przygotowanym wcześniej
przez kreatora Database Form Wizard.
33670543.002.png
56
Część I
Rysunek 2.16.
Nowy formularz
z kompletem
kontrolek
powiązanych
z danymi.
Aby móc uruchomić nowy formularz trzeba jeszcze tylko zdecydować, w jaki
sposób i na którym etapie działania programu ma zostać otwarta tablica TTable .
Dostępne są dwie możliwości. Pierwsza polega na nadaniu atrybutowi Active
wartości True już podczas tworzenia formularza i programu. Tabela zostanie
otwarta już wtrakcie pracy nad formularzem wDelphi, atakże wczasie
wykonywania programu. Można również wpisać polecenie otwarcia tabeli
TTable do podprogramu obsługi zdarzenia OnCreate lub OnShow . W takim
przypadku tabela będzie otwierana w trakcie wykonywania programu. Kreator
Database Form Wizard korzysta właśnie z drugiego z opisanych sposobów -
wpisuje polecenie otwarcia TTable do podprogramu OnCreate , co powoduje,
że tabela jest otwierana niezwłocznie po utworzeniu formularza przez program.
W omawianym przykładzie podążymy tą samą drogą, co kreator Database Form
Wizard i wpiszemy odpowiednie polecenie do podprogramu obsługi zdarzenia
OnCreate . Naciśnięcie klawisza F11 przywoła okienko Object Inspector . Należy
teraz kliknąć myszą na liście rozwijanej i wybrać zdefiniowany właśnie formularz
ze spisu klas komponentów. Następnie należy przejść na stronę Events (Zdarzenia)
okienka ObjectInspector i podwójnie kliknąć na zdarzeniu OnCreate . Spowoduje
to otwarcie edytora tekstu źródłowego, w którym należy wpisać następujące
polecenie:
Table1.Open;
W ten sposób tabela będzie otwierana natychmiast po utworzeniu formularza przez
program. Formularze aplikacji są na ogół automatycznie tworzone zaraz po
uruchomieniu programu. Zmiana odpowiedniej opcji w polu dialogowym Project
Options umożliwia rezygnację z automatycznego tworzenia formularzy.
33670543.003.png
Szybki start
57
Uruchamianie programu z nowym formularzem
Formularz jest teraz gotowy do uruchomienia. Aby zagwarantować, że formularz
pojawi się na ekranie jako pierwszy po uruchomieniu aplikacji, należy uczynić go
formularzem głównym aplikacji. Oto odpowiednia procedura postępowania:
1. Wybrać pozycję Options z menu Project .
2. Na stronie Forms okna dialogowego Options kliknąć na liście rozwijanej Main
form i wybrać z niej formularz Form1. Wskazany formularz stanie się głównym
formularzem aplikacji.
3. Kliknąć OK w celu zachowania zmian.
Można teraz nacisnąć klawisz F9, co spowoduje uruchomienie aplikacji. Na
ekranie powinien pojawić się nowy formularz. rysunek 2.17 przedstawia
przykładowy wygląd ekranu po uruchomieniu aplikacji.
Rysunek 2.17.
Nowy formularz
w trakcie
wykonania
programu.
Po wypróbowaniu nowego formularza należy go zamknąć i powrócić do Delphi.
Tworzenie aplikacji do obsługi baz danych
Znajomość podstaw tworzenia prostych formularzy, służących do obsługi baz
danych, pozwala przejść do bardziej złożonego zagadnienia, jakim jest budowanie
całych aplikacji do obsługi baz danych. Niniejsza sekcja porusza następujące
problemy:
33670543.004.png
58
Część I
wykorzystanie komponentu TDatabase w aplikacjach;
definiowanie aliasów BDE;
przygotowywanie modułów danych;
tworzenie formularzy typu nadrzędny-podrzędny;
wykorzystanie komponentu TQuery ;
projektowanie raportów.
Komponent TDatabase
Stosowanie komponentu TDatabase w aplikacjach do obsługi baz danych nie
jest wprawdzie konieczne, jednak znakomicie ułatwia scentralizowane zarządzanie
dostępem do bazy danych. Na przykład, aby zmienić poziom izolacji transakcji
w ramach aplikacji, wystarczy zmodyfikować wartość atrybutu
TransIsolation komponentu TDatabase . Aby zastąpić domyślną
sekwencję logowania, można dołączyć odpowiedni fragment kodu do procedury
obsługi zdarzenia OnLogin w komponencie TDatabase . Podobnie, aby określić
parametry specyficzne dla programu obsługi bazy danych, wystarczy dodać
odpowiednie wpisy do atrybutu Params .
Aby przygotować komponent TDatabase dla formularza Form1 należy:
1. Odnaleźć komponent TDatabase na stronie Data Access paska narzędzi
Delphi i przenieść ten komponent na formularz. Położenie TDatabase na
formularzu nie jest istotne - jest to komponent nie posiadający reprezentacji
graficznej, podobnie jak TTable i TDataSource , i jako taki nie będzie
widoczny podczas wykonywania programu.
2. Przypisać atrybutowi AliasName komponentu TDatabase nazwę aliasu
DBDEMOS; alias ten używany był wcześniej przez kontrolki umieszczone na
formularzu.
3. Nadać atrybutowi DatabaseName wartość dbTest . Atrybut
DatabaseName (nazwa bazy danych) określa nazwę, za pośrednictwem
której inne komponenty będą odwoływały się do danego komponentu
TDatabase . Odwołanie takie realizowane jest poprzez własny atrybut
DatabaseName każdego z takich komponentów. A zatem, aby używać
komponentu TDatabase z komponentem TTable , należy atrybutom
DatabaseName obu tych komponentów nadać tę samą wartość.
4. Po przygotowaniu TDatabase należy tak zmodyfikować komponent
TTable , aby odwoływał się on do nowej bazy danych. W tym celu należy
wywołać okno Object Inspector i kliknąć na liście rozwijanej, widocznej obok
 
Zgłoś jeśli naruszono regulamin