[ Pobierz całość w formacie PDF ]

rzeczy: wszelkie wykorzystywane przez aplikacj¹ pliki HTML powinny znajdować si¹
w tym samym katalogu, w którym znajduje si¹ jej biblioteka DLL.

Przedstawione dotychczas przykłady ilustrujące m.in. zarządzanie informacjami o użyt-
kownikach i ich preferencjach, nadzorowanie sesji użytkowników, wyświetlanie i mani-
pulowanie danymi itp. są dość intuicyjne i stanowią wymowne świadectwo możliwości
technologii WebSnap. WebSnap  potrafi jednak jeszcze wi¹cej, dajÄ…c użytkownikom
jeszcze wi¹kszÄ… kontrol¹ nad tworzonymi aplikacjami.
n n
Tworzenie aplikacji WebSnap wiąże si¹ zazwyczaj z operowaniem wieloma plikami i za-
sobami  jak pliki HTML, skrypty serwera, moduły pascalowe, zbiory danych i kom-
ponenty sterowników, grafika, itp.; wszystko to musi oczywiście być w logiczny sposób
powiÄ…zane ze sobÄ…, by aplikacja mogÅ‚a funkcjonować poprawnie. Najcz¹Å›ciej czynnikiem
 koordynujÄ…cym sÄ… same strony HTML, w które wbudowuje si¹ powiÄ…zane zasoby;
WebSnap umożliwia wprawdzie przechowywanie stron HTML niezależnie od skompilowa-
nego moduÅ‚u wynikowego, jednak muszÄ… one znajdować si¹ w tym samym katalogu, w któ-
rym jest ów moduł wynikowy. Nie zawsze jest to możliwe i nie zawsze wygodne  pożą-
dana byłaby możliwość przechowywania stron HTML np. w zasobach czy bazach danych.
Na takÄ… okazj¹ WebSnap oferuje komponent , umożliwiajÄ…cy pobie-
ranie stron HTML z dowolnego zródła, które może być reprezentowane w formie stru-
mienia danych (stream). yródłem takim mógłby być na przykład zasób binarny, skon-
solidowany z modułem wynikowym. Zaprezentujemy to rozwiązanie  umieścimy we
wspomnianym zasobie kopi¹ strony wmLogin.html, nazwanÄ… embed.html i uzupeÅ‚nionÄ…
stosownym tekstem wyjaśniającym, z którą stroną mamy faktycznie do czynienia.
Najprostszym środkiem implementowania zasobów są w Delphi pliki *.RC. Umieszczone
w projekcie, podlegają automatycznej kompilacji i konsolidacji z wynikowym modułem
wykonywalnym. Plik .RC reprezentujÄ…cy zasób-stron¹ HTML w naszym przykÅ‚adzie ma
nast¹pujÄ…cÄ… zawartość:
Po skompilowaniu aplikacji strona EMBED.HTML zostanie dołączona do modułu wyko-
nywalnego jako zasób .
Dodaj do naszej aplikacji kolejnÄ… stron¹, nazwij jÄ… Embedded i zapisz pod nazwÄ… wmEm-
bedded. Przejdz do strony Home, wybierz komponent i korzystajÄ…c
z inspektora obiektów stwórz nast¹pujÄ…cÄ… procedur¹ obsÅ‚ugi zdarzenia :
II
Parametr zawiera niekwalifikowanÄ… nazw¹ poszukiwanej strony HTML, zaÅ›
parametrowi przypisywany jest strumień utworzony na podstawie zasobu
. Zwróć uwag¹, iż zasób ten udost¹pniany b¹dzie na każde żądanie, które
dotyczy strony posiadajÄ…cej wbudowany w nazw¹ czÅ‚on  wmembedded (niezależnie
od wielkoÅ›ci liter); komponent zapewnia wi¹c pewien stopieÅ„ uniwer-
salizmu, polegającego na możliwości zastosowania tego samego pliku lub zasobu dla
różnych żądań. Wynikowa wartość parametru oznacza, iż żądanie zostało
obsłużone i parametr reprezentuje strumień wynikowy.
n
Jednym z najtrudniejszych zadań w aplikacjach internetowych jest obsługa przesyłania
pliku od klienta do serwera, polegająca na pieczołowitej kontroli każdego nadchodzące-
go bajtu. WebSnap znacznie upraszcza to zadanie, powierzajÄ…c wi¹kszość jego skompli-
kowanych szczegółów komponentowi-adapterowi, a użytkownikowi pozostaje jedynie
umieszczenie wspomnianego pliku w strumieniu.
Stwórz nowÄ… stron¹ o nazwie Upload i zapisz jÄ… pod nazwÄ… wmUpload. Umieść w jej mo-
dule danych komponent i dodaj do niego jedno pole , które
b¹dzie sÅ‚użyć do wybierania przez klienta plików do zaÅ‚adowania. Dodaj także pojedyn-
czÄ… akcj¹ i nazwij jÄ… .
Dodaj do komponentu komponent , a do tego ostatniego  trzy kom-
ponenty: , i . Połącz dwa pierw-
sze z komponentem (przez właściwość ), natomiast
poÅ‚Ä…cz z (przez wÅ‚aÅ›ciwość ). Nast¹pnie dodaj
wszystkie pola komponentu i wszystkie akcje komponentu
. Zmień tytuł przycisku na Załaduj plik. Rysunek 23.17 przedstawia
obraz strony w edytorze Web Surface Designer.
un
WyglÄ…d strony
dokonujÄ…cej
załadowania pliku
Konieczne jest ponadto dodanie kodu w dwóch miejscach modułu. Pierwszym jest pro-
cedura obsługi zdarzenia komponentu  przed-
stawia jÄ… wydruk 23.5.

u Obsługa zdarzenia OnFileUpload
Poniższy kod dokonuje sprawdzenia, czy wybrano jakiś plik i czy plik ten ma rozszerze-
nie .jpg albo .jpeg, po czym sprawdza, czy katalog docelowy istnieje, czy też należy go
utworzyć (funkcja ). Nast¹pnie tworzony jest strumieÅ„ plikowy i do
tego strumienia kopiowane są kolejno zawartości wyspecyfikowanych plików. Faktyczne
dziaÅ‚ania zwiÄ…zane z Å‚adowaniem plików nie sÄ… widoczne na wydruku, skrywajÄ… si¹ bo-
wiem wewnÄ…trz klasy .
Drugim zdarzeniem wymagajÄ…cym oprogramowania jest zdarzenie akcji
komponentu :
Zdarzenie to wymusza odświeżenie rekordów komponentu i związane z tym
pobranie żądanych plików.
II
n n h n
Kreatory WebSnap oferują użytkownikowi tylko dwa szablony określające początkową
postać strony HTML: Blank i Standard. Jest to w zupełności wystarczające dla aplikacji
ilustrujących ogólne zasady działania WebSnap (jak ta opisywana w niniejszym rozdziale),
jednak w przypadku zadań bardziej skomplikowanych same szablony też są na ogół bar-
dziej skomplikowane i przede wszystkim specyficzne dla danego zastosowania. [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rafalstec.xlx.pl