Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
Oprócz obrazków identyfikowanych przez URL, WebSnap potrafi także obsługiwać grafikę przechowywaną w strumieniu (stream). Wybierz drugie z pól
(komponentu ) i za pomocą inspektora obiektów wygeneruj szkielet procedury obsługi zdarzenia 9-. Umieść jakiś obrazek w tym samym katalogu, w któ-
rym znajduje się projekt aplikacji (wersja na załączonym CD-ROM-ie wykorzystuje obrazek athena.jpg) i uzupełnij następująco wspomnianą procedurę zdarzeniową:
" : :. /K:9 H 8>2
H 9 2 3 D H 9 2 3 :H 9 2
3 81 H L$2
D H ( N>(2
: H . 9 < (>(E 8- $2
2
u
Wyświetlanie obrazka
identyfikowanego
przez URL
Wszystko wygląda tu niesłychanie prosto: binarny strumień składający się na zawartość obrazka przypisywany jest do parametru . Ponieważ aplikacja nie posiada żadnych informacji na temat typu zawartości tego strumienia, należy jej ten typ wskazać — do tego służy parametr 6. Strumień plikowy nie jest co prawda niczym nad-zwyczajnym, jeśli chodzi o przechowywanie grafiki, jednak WebSnap potrafi z równą łatwością „dobierać się” do obrazków przechowywanych w dowolnym strumieniu, jak np.
8 , czy nawet strumień pamięciowy o zawartości tworzonej ad hoc.
Po uruchomieniu aplikacji powinieneś na stronie zobaczyć, poniżej prezentowanego już wykresu, portret (znanej z Delphi 2) bogini Ateny.
( ("
Wśród bogatych możliwości oferowanych przez WebSnap nie mogło oczywiście zabraknąć obsługi baz danych. Zawartość dowolnego zbioru danych może być wyświetlana na stronie WWW zarówno w formie tabelarycznej, jak i w postaci oddzielnych rekordów. Zawartość każdego rekordu może być łatwo modyfikowana, można także usuwać rekordy i dodawać nowe.
Wyświetlanie kolejnych rekordów zbioru danych (po jednym na stronie) jest bardzo łatwe.
Dodaj do aplikacji nowy moduł danych — kliknij trzeci przycisk na pasku Internet i za-akceptuj domyślne wartości ustawień. Dodaj do utworzonego modułu danych komponent
(ze strony palety komponentów) i komponent (ze strony
BDE). Skojarz komponent z tabelą 8 ! bazy danych 89, a następnie przy-
pisz sam komponent do właściwości komponentu . Otwórz tabelę bazy danych przez ustawienie na właściwość komponentu . Na koniec nadaj nowemu modułowi nazwę 8 ! i zapisz go pod nazwą (8 !.
! u "#$
W naszym przykładzie wykorzystaliśmy pojedynczą tabelę bazy danych Paradox, jednak komponent może współpracować z dowolnym komponentem
wywodzącym się z klasy . Ponadto trzeba przyznać, iż wykorzystanie tabeli
w aplikacji bez jawnego obsługiwania sesji nie jest dobrym
posunięciem, zważywszy na warunki pracy wielowątkowej (por. rozdział 5.)
— zdecydowaliśmy się na takie posunięcie, by nie komplikować przykładu.
Dla odmiany — otwórz okno Object TreeView (za pomocą kombinacji klawiszy Shift+Alt+
F11). Kliknij prawym przyciskiem myszy pozycję Actions komponentu ,
i z menu kontekstowego wybierz opcję Add All Actions; w podobny sposób wybierz opcję Add All Fields z menu kontekstowego pozycji Fields. Przejdź następnie do komponentu , i za pomocą edytora pól dodaj do modułu danych wszystkie jego pola (Add All Fields).
Ponieważ WebSnap operuje na zbiorach danych w trybie bezstanowym, konieczne jest istnienie klucza głównego dla zbioru danych, by nawigacja wśród jego rekordów i mody-fikacja jego danych w ogóle były możliwe. WebSnap oferuje łatwe rozwiązanie tego problemu: w oknie Object TreeView wybierz pozycję Fields (podporządkowaną komponentowi
,) i dla pola ;: ustaw opcję !<6 we właściwości .
Dodaj do aplikacji nową stronę, zakwalifikuj ją jako wymagającą logowania, nadaj jej nazwę BioLife i zapisz pod nazwą wmBiolife. Ponieważ jej moduł źródłowy będzie się odwoływać do modułu (8 !, umieść nazwę tego ostatniego na liście uses.
Przejdź do okna Object TreeView i z menu kontekstowego pozycji WebPageItems wybierz polecenie New Component, po czym dodaj komponent . W analogiczny sposób
dodaj do pozycji , komponenty i -; ustaw wła-
ściwość tych komponentów na ,. Za pomocą menu kontekstowego komponentu -, dodaj wszystkie jego kolumny (Add All Columns).
Przejdź do modułu 8 ! i z menu kontekstowego pozycji Actions (podporządko-
wanej komponentowi ,) wybierz polecenie Add All Actions; w ten sam sposób wybierz polecenie Add All Fields dla pozycji Fields.
Powróć do modułu 8 ! i kliknij dwukrotnie komponent ; powi-
nieneś zobaczyć okno edytora Web Surface Designer z uwidocznioną zawartością rekordów tabeli (rys. 23.13); jeżeli rekordy się nie ukażą, prawdopodobnie zbiór nie został otwarty
— zmień wówczas na właściwość komponentu ,.
Ponieważ pole : „spycha” na prawo następne pola, przejdź do komponentu 4
-, (w oknie Object TreeView) i usuń pozycję % : .