Zaawansowane programowanie w (pakiecie) Delphi



Podobne dokumenty
Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg:

W wyświetlonym okienku New Web Server Application wybierz opcję Web App Debugger Executable, a w polu Class Name wpisz: P1.

Wprowadzenie do systemu Delphi

Tworzenie aplikacji Windows Rozszerzenia serwerów WWW

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

ZAAWANSOWANE PROGRAMOWANIE W (PAKIECIE) DELPHI

PODSTAWY PROGRAMOWANIA

Tomasz Greszata - Koszalin

Zaawansowane programowanie w (pakiecie) Delphi

Po³¹czenie iphone'a/ipad a do Smart Multishare USB

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW

Zaawansowane programowanie w (pakiecie) Delphi

ZAAWANSOWANE PROGRAMOWANIE W (PAKIECIE) DELPHI

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Zdalne odnawianie certyfikatów do SWI

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

System kontroli wersji SVN

Aplikacje internetowe i rozproszone - laboratorium

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Tworzenie własnych komponentów

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

16) Wprowadzenie do raportowania Rave

Serwery Statefull i Stateless

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X

Automatyzacja procesu publikowania w bibliotece cyfrowej

1. Wybierz File New Application. Pojawi się nowa aplikacja w Delphi.

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

STRUKTURA MENU STRUKTURA MENU

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Podstawy JavaScript ćwiczenia

AMPS Sterownik temperatur Instrukcja obs³ugi

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Delphi podstawy programowania. Środowisko Delphi

Microsoft Management Console

Zaawansowane aplikacje internetowe - laboratorium

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Instrukcja programu PControl Powiadowmienia.

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Pracownia internetowa w ka dej szkole (edycja 2004)

Kancelaris - Zmiany w wersji 2.50

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

SpedCust 5 instrukcja instalacji

BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI

NOTA TECHNICZNA INTERFEJSY DIAGNOSTYCZNE

InsERT GT Własne COM 1.0

Zaawansowane programowanie w (pakiecie) Delphi

Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach?

Specyfikacja techniczna banerów Flash

Pracownia internetowa w ka dej szkole (edycja 2004)

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

Instrukcja / KRPANO / SZYFROWANIE PLIKÓW WYCIECZKI WIRTUALNEJ Z OGRANICZENIEM ODTWARZANIA ZAWARTOŒCI DO WSKAZANEJ DOMENY. str.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Ćwiczenie 10 Generowanie plików HTML. Przygotuj program wyświetlający formatkę jak na rysunku (w fazie projektowania):


1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

PREZENTACJA INFORMACJI FINANSOWEJ w analizach i modelowaniu finansowym. - dane z rynków finansowych DANE RÓD OWE

INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2)

INFORMATOR TECHNICZNY WONDERWARE

Sieci komputerowe cel

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Sterownik Radiowy Instrukcja obs³ugi i programowania

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile

8. Konfiguracji translacji adresów (NAT)

Systemy mikroprocesorowe - projekt

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

elektroniczna Platforma Usług Administracji Publicznej

INTEGRATOR Instrukcja instalacji, konfiguracji.

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

Podr cznik u ytkownika. procertum SmartSign Wersja dokumentacji 1.0. Unizeto Technologies SA -

Wdrażanie aplikacji Delphi 2005

SFML. (Simple and Fast Multimedia Library)

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Elementy i funkcjonalno

BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI

Laboratorium 1 Wprowadzenie do PHP

Tworzenie i wykorzystanie usług sieciowych

Firma Informatyczna JazzBIT

Instrukcja aktywacji oprogramowania

INFORMATOR TECHNICZNY WONDERWARE

System Centrala. System Centrala - opis systemu. System Centralnego Zarz±dzania "Magnat Centrala" stanowi istotne

VinCent Office. Moduł Drukarki Fiskalnej

Bazy Danych i Usługi Sieciowe

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Czêœæ I Instalacja. Czêœæ II Instrukcja obs³ugi. Spis treœci

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Instrukcja obs³ugi panelu dealera

Kabel do transmisji danych CA-42 krótka instrukcja instalacji

Warszawa, r.

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Transkrypt:

DEL420 Zaawansowane programowanie w (pakiecie) Delphi Andrzej Marciniak Prezentacja multimedialna przygotowana za pomoc¹ systemu Corel Presentations 11 i X3 Copyright 2004-2010 by Andrzej Marciniak DEL-14-15(1 z 59)

Na poprzednim wyk³adzie... konstrukcja obiektów automatyzacji OLE, COM i ActiveX rodzaje serwerów etapy tworzenia serwera program-klient dla sewera DEL-14-15(2 z 59)

Na tym wyk³adzie... konstruowanie programów serwerów uruchomienie kreatora i wybór rodzaju programu typy klasowe TWebModule, TWebRequest i TWebResponse redagowanie akcji protoko³y przesy³ania zapytañ komponenty PageProducer, DataSetPageProducer i Table. DEL-14-15(3 z 59)

Programy serwerów (Web) s¹ programami niewidzialnymi (³¹cze u ytkownika jest reprezentowane jako program-klient w przegl¹darce internetowej). Do utworzenia takiego programu s³u y specjalne narzêdzie œrodowiska Delphi tzw. kreator programu serwera Web. Etapy tworzenia programu serwera W eb: wybór rodzaju programu serwera Web, redagowanie akcji, do³¹czanie komponentów. DEL-14-15(4 z 59)

Uruchomienie kreatora i wybór rodzaju programu Inicjujemy polecenie File New Other i na stronie New okienka New Items wybieramy piktogram Web Server Application. tu jest ten piktogram DEL-14-15(5 z 59)

Uruchomienie kreatora i wybór rodzaju programu Spowoduje to otwarcie okienka, w którym nale y okreœliæ jeden z piêciu rodzajów programów serwerów Web. DEL-14-15(6 z 59)

Uruchomienie kreatora i wybór rodzaju programu CGI Stand-alone executable Program serwera CGI (skr. ang. Common Gateway Interface) jest programem tekstowym. Jest on wczytywany przez serwer Web przy ka dym zapytaniu (ang. request) i usuwany z pamiêci po wykonaniu zapytania. Informacje od klienta s¹ odbierane na standardowym urz¹dzeniu wejœcia, a wyjœcie jest kierowane do standardowego urz¹dzenia wyjœcia. Obiekt programowy jest typu TCGIApplication. DEL-14-15(7 z 59)

Uruchomienie kreatora i wybór rodzaju programu Program serwera CGI ma nastêpuj¹c¹ postaæ (jest on tworzony automatycznie): program WebCGI; {$APPTYPE CONSOLE} uses WebBroker, CGIApp, WebUnitCGI in WebUnitCGI.pas {... }; {$R *.res} begin Application.Initialize; Application.CreateForm(TWebModule1, WebModule1); Application.Run; end. DEL-14-15(8 z 59)

Uruchomienie kreatora i wybór rodzaju programu Uwaga: Do wersji 6 œrodowiska Delphi okienko New Web Server Application zawiera³o trzy rodzaje serwerów (CGI, WinCGI oraz ISAPI/NSAPI). Program WinCGI by³ implementacj¹ protoko³u CGI specyficzn¹ dla œrodowiska Windows. Do przesy³ania informacji wykorzystywa³ zbiór INI (zamiast standardowego wejœcia i wyjœcia). Obiekt programowy by³ te typu TCGIApplication, a jedyn¹ ró nic¹ w programie by³o zast¹pienie dyrektywy {$APPTYPE CONSOLE} dyrektyw¹ {$APPTYPE GUI}. DEL-14-15(9 z 59)

Uruchomienie kreatora i wybór rodzaju programu ISAPI/NSAPI Dynamic Link Library ISAPI (Microsoft), NSAPI (Netscape) Jest to biblioteka DLL serwera Web i jako taka jest wczytywana przy pierwszym zapytaniu, a usuwana dopiero po wykonaniu ostatniego zapytania (kolejne zapytania s¹ dziêki temu wykonywane szybciej). Kod Ÿród³owy biblioteki DLL serwera Web jest podobny do kodu Ÿród³owego programu CGI, a jedyna ró nica polega na eksportowaniu z niej trzech funkcji API s³u ¹cych serwerowi Web do wczytania i uruchomienia biblioteki: DEL-14-15(10 z 59)

Uruchomienie kreatora i wybór rodzaju programu library WebISAPI; uses ActiveX, ComObj, WebBroker, ISAPIThreadPool, ISAPIApp, WebUnitISAPI in WebUnitISAPI.pas {... }; {$R *.res} exports GetExtensionVersion, HttpExtensionProc, TerminateExtension; begin CoInitFlags:=COINIT_MULTITHREADED ; Application.Initialize; Application.CreateForm(TWebModule1, WebModule1); Application.Run; end. DEL-14-15(11 z 59)

Uruchomienie kreatora i wybór rodzaju programu Apache 1.x Share Module (DLL) Apache 2.x Share Module (DLL) Jest to biblioteka DLL serwera Web przeznaczona dla serwera typu Apache. Web App Debugger executable Wybór tej opcji umo liwia utworzenie i testowanie (w œrodowisku Delphi) programu serwera Web, ale nie umo liwia jego umieszczenia w sieci. DEL-14-15(12 z 59)

Uruchomienie kreatora i wybór rodzaju programu Po wyborze rodzaju programu œrodowisko Delphi wygeneruje zbiór projektowy, zwany Web Broker (program lub bibliotekê) oraz pusty modu³, zwany Web Module: unit WebUnitISAPI; interface uses SysUtils, Classes, HTTPApp; type TWebModule1 = class (TWebModule)... end; var WebModule1 : TWebModule1; implementation {$R *.dfm} end. DEL-14-15(13 z 59)

Uruchomienie kreatora i wybór rodzaju programu W ygenerowane automatycznie zbiory projektu nale y zapisaæ pod now¹ nazw¹ (w podanym przyk³adzie bêd¹ to nazwy: WebISAPI dla biblioteki i WebUnitISAPI dla modu³u). Modu³ Web Modul jest miejscem, w którym umieszcza siê specjalne komponenty projektu Web Broker. Komponenty te znajduj¹ siê na stronie Internet palety komponentów (bêdzie dalej). DEL-14-15(14 z 59)

G³ówne klasy modu³u HttpApp Typy klasowe zwi¹zane z tworzeniem programów serwerów s¹ zdefiniowane w module HttpApp. Najwa niejsze z nich to: TWebModule, TWebRequest, TWebResponse. DEL-14-15(15 z 59)

TWebModule Programy serwerów G³ówne klasy modu³u HttpApp Potomek tej klasy jest automatycznie generowany w ka dym module Web. Jest on repozytorium (sk³adnic¹) dla komponentów niewidocznych (np. PageProducer, DataSetTableProducer). Umo liwia tak e programowi serwera W eb odpowiadaæ na zapytania HTTP przez przekazywanie ich do odpowiednich jednostek, zwanych akcjami. DEL-14-15(16 z 59)

TWebModule Programy serwerów G³ówne klasy modu³u HttpApp Dodawanie, usuwanie i przegl¹danie akcji nastêpuje za pomoc¹ edytora akcji (bêdzie dalej). Uwaga: Program lub biblioteka DLL serwera Web typu Web Broker mo e mieæ tylko jeden modu³ Web. DEL-14-15(17 z 59)

G³ówne klasy modu³u HttpApp TWebResponse Jest to podstawowa klasa dla wszystkich obiektów, które reprezentuj¹ odpowiedzi HTTP przesy³ane wskutek wyst¹pienia odpowiednich zapytañ HTTP. Klasa ta ma typy potomne, które reprezentuj¹ odpowiedzi HTTP dla ró nych rodzajów programów serwerów Web, np. TISAPIResponse dla serwerów ISAPI/NSAPI i TCGIResponse dla serwerów CGI. DEL-14-15(18 z 59)

G³ówne klasy modu³u HttpApp TWebRequest Jest podstawow¹ klas¹ reprezentuj¹c¹ zapytania klienta przekazywane do programu serwera W eb. Klasa ta ma te typy potomne reprezentuj¹ce zapytania dla ró nych rodzajów serwerów, np. TISAPIRequest dla serwerów ISAPI/NSAPI i TCGIRequest dla serwerów CGI. DEL-14-15(19 z 59)

G³ówne klasy modu³u HttpApp Zwracamy uwagê na odpowiednioœæ nazw, np. dla serwera ISAPI/NSAPI mamy: obiekt klasa program TISAPIApplication *) zapytanie TISAPIRequest odpowiedÿ TISAPIResponse Podobna odpowiednioœæ nazw istnieje dla pozosta³ych rodzajów serwerów. *) Zmienna Application jest typu TISAPIApplication. DEL-14-15(20 z 59)

Struktura programu serwera Web Web Module (Dispatcher) Web Request Action Item Content Producer Web Server Web Application Content Producer Web Response Action Item Content Producer DEL-14-15(21 z 59)

Redagowanie akcji Przy aktywnoœci okienka redakcyjnego z Web Module, edytor akcji mo na uruchomiæ jednym z dwu sposobów: w okienku Object Inspector wybraæ w³asnoœæ Action, po czym przycisk z wielokropkiem obok wartoœci tej w³asnoœci (TWebActionItems) tu klikn¹æ DEL-14-15(22 z 59)

Redagowanie akcji Przy aktywnoœci okienka redakcyjnego z Web Module edytor akcji mo na uruchomiæ jednym z dwu sposobów: zlokalizowaæ kursor myszki w okienku modu³u Web (domyœlna nazwa: WebModule1), nacisn¹æ prawy klawisz myszki i w wyœwietlonym menu kontekstowym wybraæ polecenie Action Editor tu jest to polecenie DEL-14-15(23 z 59)

Redagowanie akcji W obu przypadkach spowoduje to wyœwietlenie okienka edytora akcji. piktogram Add New Kolejne akcje dodajemy przez wybór piktogramu Add New lub naciœniêcie klawisza Ins (usuniêcie akcji nastêpuje przez jej podœwietlenie i wybór piktogramu Delete Selected lub naciœniêcie klawisza Del). DEL-14-15(24 z 59)

Redagowanie akcji W edytorze mo na zdefiniowaæ wiele akcji, a do ich rozró niania s³u y w³asnoœæ PathInfo (wartoœæ tej w³asnoœci wpisujemy w okienku Object Inspector). Dziêki niej pojedynczy program serwera W eb mo e odpowiadaæ na wiele akcji (bêdzie dalej). Pierwsza akcja nie ma okreœlonej wartoœci PathInfo, ale za to jest akcj¹ domyœln¹ (w okienku Object Inspector nale y dla niej ustaliæ wartoœæ True w³asnoœci Default). DEL-14-15(25 z 59)

Redagowanie akcji Dla ka dej akcji nale y utworzyæ metodê obs³ugi zdarzenia OnAction (w zwyk³y sposób). Nag³owek utworzonego automatycznie szkieletu tej metody dla pierwszej akcji ma postaæ: procedure TWebModule1.WebModule1WebActionItem1Action (Sender : TObject; Request : TWebRequest; Response : TWebResponse; var Handled : Boolean); Dwoma wa nymi parametrami s¹: Response oraz Request. DEL-14-15(26 z 59)

Redagowanie akcji Parametr Response jest typu TWebResponse, który zawiera wiele w³asnoœci do generowania wyjœcia (redagowania strony dla przegl¹darki). Najwa niejsz¹ w³asnoœci¹ jest Content. Jest ona typu ³añcuchowego i s³u y do podania kodu HTML, który ma byæ przekazany do klienta. Np. instrukcja Response.Content:= <H1>Hello, world!</h1> w odpowiedzi na zapytanie klienta spowoduje wyœwietlenie u klienta napisu Hello, world!. DEL-14-15(27 z 59)

Redagowanie akcji Uwaga: W³asnoœci Content mo na przypisywaæ ró ne elementy. Zwykle s¹ to elementy typu text/html (³añcuch z odpowiednim okreœleniem typu jest wartoœci¹ w³asnoœci ContentType parametru Response). Elementy bitowe, takie jak obrazki, nie mog¹ byæ jednak przypisywane w³asnoœci Content do tego celu s³u y w³asnoœæ ContentStream. DEL-14-15(28 z 59)

Redagowanie akcji Parametr Request (typu TWebRequest) reprezentuje zapytanie. W typie TWebRequest s¹ zdefiniowane m. in. w³asnoœci, w których s¹ przechowywane wszystkie informacje o zapytaniu. Istniej¹ dwa protoko³y przesy³ania zapytañ: DEL-14-15(29 z 59)

Redagowanie akcji GET dane sk³adaj¹ce siê na zapytanie s¹ przesy³ane w formacie URL (skr. ang. Uniform Resource Locator); operacja ta jest szybka, ale ograniczona do kilku kb (zwykle jest to wystarczaj¹ce), POST dane s¹ przekazywane przy wykorzystaniu standardowego sposobu wykonywania operacji wejœcia-wyjœcia; operacja ta jest wolniejsza, ale ograniczona wy³¹cznie iloœci¹ wolnego miejsca na dysku. DEL-14-15(30 z 59)

Redagowanie akcji W zale noœci od protoko³u przekazywane dane mo na odczytaæ z w³asnoœci QueryFields (GET) lub ContentFields (POST). Informacja o sposobie przekazywania zapytania mo e byæ uwzglêdniona w rozwa anej metodzie (metodzie obs³ugi zdarzenia OnAction): DEL-14-15(31 z 59)

Redagowanie akcji Response.Content:= <H1>Hello, world!</h1> ; if Request.Method= GET then Response.Content:=Response. Content + <B>GET</B> + <BR>Query: +Request.Query else if Request.Method= POST then Response.Content:=Response. Content + <B>POST</B> + <BR>Content: +Request.Content DEL-14-15(32 z 59)

Redagowanie akcji Serwer Web ju dzia³a! Mo na o tym przekonaæ siê po skompilowaniu projektu i umieszczeniu pliku wynikowego (.dll) w katalogu plików wykonywalnych swojego serwera. Zwykle jest to podkatalog o nazwie scripts. Drug¹ operacj¹ jest napisanie zbioru HTML (File New Other, zak³adka Web Documents, piktogram HTML Document), np.: DEL-14-15(33 z 59)

Redagowanie akcji Serwer Web ju dzia³a! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <BODY> <H1>Web Broker HTML Form</H1> <HR> <FORM ACTION="http://nazwa-serwera/scripts/WebISAPI.dll" METHOD="POST"> <P>Name: <INPUT TYPE="TEXT" NAME="Name"></P> <P><INPUT TYPE="SUBMIT"></P> </FORM> </BODY> </HTML> DEL-14-15(34 z 59)

Redagowanie akcji Wystarczy teraz wczytaæ podany zbiór HTML do przegl¹darki MS Explorer i na wyœwietlonej stronie w polu Name wpisaæ jakiœ tekst, po czym wybraæ przycisk Submit (w polskojêzycznej wersji MS Explorera bêdzie to przycisk Przeœlij kwerendê) znajduj¹cy siê na stronie. Uwaga: W³asnoœci Content parametru Response mo na przypisaæ nawet kilka ca³ych stron. Czasami zachodzi koniecznoœæ przes³ania do klienta ³añcucha (strony) HTML, której wzorzec jest znany, a tylko pewne elementy powinny byæ w niej zmienne. W takim przypadku nale y pos³u yæ siê komponentem PageProducer. DEL-14-15(35 z 59)

Dodawanie komponentów Umieszczanie komponentów w oknie modu³u Web odbywa siê na ogólnych zasadach przyjêtych w œrodowisku Delphi. Wa niejsze komponenty: PageProducer (strona Internet) DataSetPageProducer (strona Internet) Table (strona BDE) DEL-14-15(36 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) Typ TPageProducer ma dwie w³asnoœci s³u ¹ce do okreœlania predefiniowanej zawartoœci: HTMLFile okreœla zewnêtrzny zbiór HTML (zalecane, gdy zamierzamy zmieniæ wzorzec strony W W W bez rekompilacji projektu biblioteki DLL), HTMLDoc w³asnoœæ typu TStrings, która zawiera odpowiedni tekst HTML. DEL-14-15(37 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) Zawartoœæ tekstu HTML umieszczonego we w³asnoœci HTMLDoc mo e zawieraæ m. in. specjalne znaczniki #. Znaczniki te s¹ ignorowane przez przegl¹darkê, ale nie przez zdarzenie OnHTMLTag komponentu PageProducer. Umo liwia to zmianê tekstu wyœwietlanego na stronie W eb. DEL-14-15(38 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) Tekst (umieszczony we w³asnoœci HTMLDoc): <H1>TPageProducer</H1> <HR> <#Greeting><#Name> <P> It's now <#Time> and we're playing with PageProducer... zawiera trzy znaczniki #, które spowoduj¹ zajœcie zdarzenia OnHTMLTag. Aby znaczniki te zast¹piæ sensownym tekstem, nale y utworzyæ metodê obs³ugi tego zdarzenia, np.: DEL-14-15(39 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) procedure TWebModule1.PageProducer1HTMLTag (Sender : TObject; Tag : TTag; const TagString : string; TagParams : TStrings; var ReplaceText : string); begin if TagString= Name then ReplaceText:= Jan // imiê wpisano na sztywno else if TagString= Time then ReplaceText:=DateTimeToStr(Now) end; else {TagString= Greeting } if Time<0.7 then ReplaceText:= Good Morning else if Time>0.7 then ReplaceText:= Good Evening else ReplaceText:= Good Afternoon Czy mo na Jan zast¹piæ imieniem wprowadzonym przez u ytkownika? DEL-14-15(40 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) Informacje o imieniu u ytkownika znajduj¹ siê w polach QueryFields lub ContentFields (w zale noœci od protoko³u GET lub POST) w³asnoœci Request obiektu typu TWebModule i jako takie s¹ bezpoœrednio dostêpne. Mo emy zatem metodê obs³ugi zdarzenia OnHTMLTag doprowadziæ do postaci DEL-14-15(41 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) procedure TWebModule1.PageProducer1HTMLTag (Sender : TObject; Tag : TTag; const TagString : string; TagParams : TStrings; var ReplaceText : string); begin if TagString= Name then begin if Request.Method= POST then ReplaceText:=Request.ContentFields.Values[ Name ] else ReplaceText:=Request.QueryFields.Values[ Name ] end else if TagString= Time... end; DEL-14-15(42 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) Przed przetestowaniem aktualnego stanu serwera nale a³oby jeszcze po³¹czyæ wyjœcie komponentu PageProducer1 (nazwa domyœlna) z drug¹ akcj¹ (nale y j¹ dodaæ w edytorze akcji z pewn¹ wartoœci¹ w³asnoœci PathInfo, np. hello), a wiêc z obs³ug¹ zdarzenia OnAction dla tej akcji, czyli napisaæ metodê: DEL-14-15(43 z 59)

Dodawanie komponentów Komponent PageProducer (typ TPageProducer) procedure TWebModule1.WebModule1WebActionItem2Action (Sender : TObject; Request : TWebRequest; Response : TWebResponse; var Handled : Boolean); begin Response.Content:=PageProducer1.Content end; Jeœli w odpowiedzi u ytkownik ma zobaczyæ stronê utworzon¹ przez komponent PageProducer1, to nale y jeszcze zmieniæ polecenie ACTION w zbiorze HTMLM: ACTION="http://nazwa-serwera/scripts/WebISAPI.dll/hello" DEL-14-15(44 z 59)

Dodawanie komponentów Komponent DataSetPageProducer (typ TDataSetPageProducer) Typ TDataSetPageProducer jest potomkiem typu TPageProducer. Zamiast bezpoœredniego zastêpowania znaczników #, umo liwia on sprawdzenie, czy identyfikator (podany za pomoc¹ tego znacznika w zbiorze HTML) jest zgodny z nazw¹ pewnego pola w³asnoœci DataSet. Jeœli identyfikator ten jest zgodny z nazw¹ jakiegoœ pola, to nast¹pi jego zast¹pienie przez aktualn¹ zawartoœæ tego pola. DEL-14-15(45 z 59)

Dodawanie komponentów Komponent DataSetPageProducer (typ TDataSetPageProducer) W³asnoœæ DataSet jest typu TDataSet i po umieszczeniu komponentu Table mo na j¹ z nim po³¹czyæ (przez wybór z listy). Komponent Table Pozwala na do³¹czenie bazy danych. W tym celu wystarczy ustaliæ wartoœci w³asnoœci: DatabaseName (wybór z listy), TableName (wybór z listy), Active (wartoœæ True powoduje automatyczne otwieranie tabeli z danymi). DEL-14-15(46 z 59)

Dodawanie komponentów Uwagi: w katalogu Demos Internet WebServ IIS znajduj¹ siê przyk³adowe serwery: iservcgi (CGI) oraz iserver (ISAPI/NSAPI) warto zapoznaæ siê z nimi, nowsz¹ technik¹ przygotowywania programów serwerów jest Web Snap (dostêpn¹ w pakiecie Delphi Enterprise od wersji 6). Jej g³ówn¹ zalet¹ jest mo liwoœæ u ycia kilku modu³ów danych (Web Module) w jednym programie ka dy z modu³ów reprezentuje jedn¹ stronê. DEL-14-15(47 z 59)

Prezentacji nie bêdzie...... ale, dla przypomnienia DEL-14-15(48 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: obs³ug¹ warunków i stanów wyj¹tkowych DEL-14-15(49 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: programowaniem bibliotek ³¹czonych dynamicznie DEL-14-15(50 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: automatycznym szacowaniem b³êdów zaokr¹gleñ DEL-14-15(51 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: przygotowaniem systemów pomocy dla programów okienkowych DEL-14-15(52 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: projektowaniem programów multimedialnych DEL-14-15(53 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: tworzeniem i wykorzystywaniem komponentów VCL i ActiveX DEL-14-15(54 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: konstrukcj¹ programu-serwera oraz programu-klienta DEL-14-15(55 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: wielow¹tkowoœci¹ i synchronizacj¹ w¹tków DEL-14-15(56 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: przygotowaniem wersji dystrybucyjnej programu DEL-14-15(57 z 59)

Mniej ni zero... Na zajêciach z przedmiotu DEL420, czyli Zaawansowanego programowania w (pakiecie) Delphi, zapoznaliœmy siê dok³adniej z: tworzeniem programów serwerów stron DEL-14-15(58 z 59)

A. M. DEL-14-15(59 z 59)