Titlul documentului


adica Http://www. se inlocuieste prin file://



Yüklə 1,42 Mb.
səhifə6/16
tarix03.01.2019
ölçüsü1,42 Mb.
#89992
1   2   3   4   5   6   7   8   9   ...   16
/


adica Http://www. se inlocuieste prin file://

EXEMPLU: pentru fisierul C:\my_pages\home.htm

se va utiliza urmatoarea adresa URL:

file:///C:/my_pages/home.htm

In cazul unei file din reteaua locala,o fila de genul:

\\servername\C_drive\my_pages\home.htm

se va accesa prin urmatoarea adresa URL:

file://servername/C_drive/my_pages/home.htm

Concret,pentru ca munca d-voastra sa fie cat mai simpla este bine sa

rezervati in unitatea C un folder special pentru filele de tip HTML cu

care lucrati in mod curent,sau pe care le descarcati din reteaua Internet.

Astfel,calea de acces la fila va fi simpla si clara,si puteti scrie o

serie de proceduri automate care selecteaza singure calea de acces.De

exemplu,adaugati un director denumit HTMLTXT in unitatea C si salvati in

acest director cateva file de tip HTML (puteti copia HTMLTXT din Prj44).

Pentru a lucra cu filele locale,puteti scrie un program similar cu cel

din Prj43,dar putin mai dezvoltat:

EXEMPLU: (vezi si Prj44)

Deschideti fila proiect din Prj43 si salvati atat fila cat si proiectul

intr-un nou director,denumit Prj44.Copiati directorul HTMLTXT pe unitatea

C si apoi inlocuiti in Object Inspector proprietatea Text din ComboBox1

cu urmatorul text: file:///C:/HTMLTXT/text1.htm

Tastati F9 si executati aplicatia.In mod normal in fila HTML se va afisa

un text exemplificativ.Pentru a putea utiliza in aplicatiile d-voastra

astfel de file,trebuie sa invatati si limbajul HTML (esentialul poate fi

parcurs intr-o singura zi -vezi www.w3.org/HTML).

Pentru a dezvolta putin aplicatia,adaugati un nou buton standard,

denumit Button1.Scrieti in Caption TEXT / COD,pentru a desemna functia

acestui buton,apoi selectati OnClick din Events si adaugati procedura:

procedure TForm1.Button1Click(Sender: TObject);

begin

HTML1.ViewSource:= not HTML1.ViewSource;

STARTClick(Sender);

end;

Tastati F9 si executati aplicatia.Acum puteti utiliza butonul TEXT / COD

pentru a afisa alternativ textul documentului sau codul sursa.

Puteti utiliza aceasta aplicatie pentru a invata limbajul de editare

HTML.Textele HTML pot fi editate in orice editor de text (MS-DOS,NotePad,

WordPad etc.).Procurati un manual pentru limabjul HTML si exersati cu

documente asemanatoare cu cel intitulat Text1.html.Nu incercati sa inva-

tati "dupa ureche" deoarece riscati sa produceti suprascrieri nedorite

ale memoriei sau chiar disfunctionalitati mai grave,sau cel putin sa va

obisnuiti cu tehnici incomplete sau neadecvate.Pentru a putea utiliza in

retea documentele de tip HTML,acestea trebuie sa respecte toate standarde-

le acestui limbaj.


-40-

Daca documentele de tip HTML sunt la alta locatie decat HTMLTXT,intro-

duceti calea completa de acces.

Browser-ul de internet s-a transformat astfel intr-un obiect simplu

de afisare a filelor de tip HTML.Acum puteti sa personalizati documentele,

astfel incat sa satisfaca toate preferintele d-voastra.

Executati un click pe HTML1 si utilizati proprietatie acestui obiect

pentru a schimba formatul de editare.De exemplu,schimbati ForeColor in

clRed sau utilizati Font si Heading1Font pentru a schimba culoarea si

dimensiunea sau stilul fonturilor.Pentru a schimba culoarea de fond se

poate utiliza BackColor,etc...

Dupa ce documentul are aspectul dorit,poate fi imprimat.Pentru a putea

imprima un document este necesara o procedura auxiliara.In primul rand

adaugati in unitatea d-voastra,in interfata Uses si unitatea Printers.

Acum,linia de cod va arata astfel:

interface

uses

Windows,Messages,SysUtils,Classes,Graphics,Controls,OleCtrls,isp3,

StdCtrls,Buttons,ExtCtrls,Printers;

Daca doriti sa adaugati si alte functii in browser-ul d-voastra,va

trebui sa adaugati si unitatile necesare pentru implementarea acestor

functii.

Adaugati in Form un alt buton,denumit Button2 si introduceti in Caption

denumirea acestui buton: IMPRIMA.Apoi,selectati OnClick din Events si

adaugati urmatoarea procedura:

procedure TForm1.Button2Click(Sender: TObject);

var Cursor: TCursor;

begin

Cursor:=Screen.Cursor;

with Printer do begin

BeginDoc;

HTML1.AutoPrint(handle);

Title:=HTML1.URL;

EndDoc;

end;

Screen.Cursor:=Cursor;

end;

Tastati F9 si executati aplicatia.Acum puteti utiliza si butonul IMPRIMA

pentru a tipari textele redactate (cu conditia ca imprimanta sa fie

pornita,activa,incarcata cu hartie etc.).

Nu utilizati aceasta procedura pentru texte prea mari,sau simultan cu

alte operatii.Dupa cum observati,este o procedura simpla care utilizeaza

memoria cursorului pe post de tampon,pentru a prelua textul care trebuie

expediat la imprimanta.Daca dintr-un motiv oarecare,textul nu poate fi

imprimat complet,exista riscul de a bloca memoria inainte ca vechiul

cursor sa fie reinstalat (caz in care calculatorul trebuie oprit si

repornit).Puteti utiliza butonul de imprimare pentru documente scurte,

care nu depasesc cateva pagini.

In continuare,puteti dezvolta acest obiect,adaugand noi butoane si

functii,pentru a satisface necesitatile d-voastra,sau de ce nu,pentru

a dezvolta aplicatii profesionale,cu scop comercial.Pentru a verifica

filele editate,puteti utiliza cu succes programul Internet Explorer.


-41-

Dupa Web Browser,un alt serviciu extrem de utilizat este cel de chat.

Exista o serie intreaga de programe comerciale,destinate special acestui

scop.Cu obiectele descrise anterior,puteti realiza o astfel de aplicatie,

personalizata,care sa va permita conversatia cu colegii din retea.

Obiectele ServerSocket si ClientSocket sunt destul de rudimentare

pentru standardele actuale ale Internet-ului,dar pot fi extrem de utile

pentru retele locale sau pentru mici aplicatii de automatizare cu circuit

inchis(doua sau mai multe calculatoare conectate prin TCP/IP).

EXEMPLU: vezi si Prj45

Salvati o fila noua si proiectul.Adaugati un camp TMemo,apoi un obiect

TServerSocket si unul sau mai multe obiecte TClientSocket.Utilizati pentru

toate socket-urile acelasi numar de port(de exemplu 3333).Puteti utiliza

orice port doriti.Traditional,pentru serviciile standardizate se utilizea-

za urmatoarele porturi: 80 pentru HTTP,21 pentru FTP,110 pentru POP si

25 pentru SMTP.Este bine sa evitati aceste valori atunci cand alegeti

portul de comunicatie pentru aplicatia d-voastra pentru a nu interfera cu

eventualele comunicatii din retea.

Pentru a activa toate aceste obiecte puteti selecta Form si apoi din

Events alegeti OnCreate si atribuiti urmatoarea procedura:

procedure TForm.FormCreate(Sender: TObject);

begin

ServerSocket1.Active:=True;

ClientSocket1.Active:=True;

ClientSocket2.Active:=True;

ClientSocket3.Active:=True;

end;

Astfel,in momentul executiei,toate obiectele vor fi activate,iar serverul

va trece in stare de ascultare si va astepta solicitari.

Similar,pentru a dezactiva toate obiectele se poate utiliza din Form,

evenimentul On Close,cu urmatoarea procedura:

procedure TForm1.FormClose(Sender: TObject;var Action: TCloseAction);

begin

ServerSocket1.Active:=False;

ClientSocket1.Active:=False;

ClientSocket2.Active:=False;

ClientSocket3.Active:=False;

end;

Acum obiectele se pot utiliza pentru a trimite si/sau receptiona

mesaje.Pentru ca serverul sa receptioneze mesajele primite se va utiliza

evenimentul OnClientRead din TServerSocket.Pentru un singur client se

poate utiliza functia ServerSocket.Socket.ReceiveText.

In cazul in care serverul utilizat asteapta pe acelasi port,mesaje de

la mai mult decat un singur client,trebuie dezvoltat un algoriitm simplu

care sa parcurga la fiecare mesaj receptionat toate conexiunile active

si sa preia eventualele mesaje.

Pentru afisarea mesajelor primite se poate utiliza orice metoda de

afisare,dar cel mai comod este sa utilizati un obiect TMemo,deoarece

pastreaza cronologic ultimele mesaje receptionate si poate afisa simultan

mai multe mesaje (in cazul in care comunicati cu mai multe persoane

simultan).Exemplul din Prj45 a fost proiectat pentru trei clienti,dar

se poate adapta la orice alt numar de clienti.


-42-

Pentru doi sau mai multi clienti,se poate utiliza urmatoarea procedura:

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var nr1:integer;

text1:string;

begin

for nr1:=0 to ServerSocket1.Socket.ActiveConnections - 1 do

begin

with ServerSocket1.Socket.Connections[nr1] do

begin

text1:=ReceiveText;

if text1 <> '' then

begin

Memo1.Lines.Add(RemoteAddress + ' trimite mesajul:');

Memo1.Lines.Add(text1);

end;

end;

end;

end;

Acum,toate mesajele receptionate de server vor fi afisate in Memo.

Pentru a transmite mesaje cu ajutorul obiectelor ClientSocket se vor

utiliza cate doua campuri TEdit si cate doua butoane,pentru fiecare

client.Unul dintre capurile TEdit va fi utilizat pentru introducerea

mesajului,iar cel de la doilea pentru specificarea adresei IP.

Adresa IP nu poate fi modificata dinamic decat daca conexiunea este

dezactivata.Pentru schimbarea adresei se va utiliza o procedura de genul:

procedure TForm1.SpeedButton1Click(Sender:TObject);

begin

ClientSocket1.Active:=False;

ClientSocket1.Address:=Edit2.Text;

ClientSocket1.Active:=True;

end;

Astfel,la apasarea butonului,conexiunea este intrerupta,se modifica

adresa si apoi se restabileste conexiunea cu noua adresa specificata.

Adresa implicita pentru toti clientii este 127.0.0.1.Aceasta adresa

corespunde cu un terminal neconectat la retea si este acceptabila pentru

orice utilizator.Pentru a incepe o conversatie reala,trebuie introdusa

o adresa IP reala,dupa care se apasa butonul de confirmare OK.

Pentru a transmite mesajul propriu zis,pentru fiecare client se va

asocia un buton si o procedura On Click de genul:

procedure TForm1.Button1Click(Sender: TObject);

begin

ClientSocket1.Socket.SendText(Edit1.text);

Memo1.Lines.Add('textul expediat: ' + Edit1.Text);

Edit1.Text:=' ';

end;

Este bine ca textul expediat sa fie afisat si in Memo,astfel incat sa

puteti avea o imagine de ansamblu cu intreaga conversatie efectuata.

Dupa expedierea mesajului,TEdit utilizat pentru preluarea datelor este

sters,pentru a permite preluarea mesajului urmator.

Se atribuie o astfel de procedura,pentru fiecare client.


-43-

In continuare,puteti adauga un buton care sa transmita un anumit mesaj

la toate adresele IP cu care sunteti conectati prin clienti.De exemplu,

pentru a transmite textul din TEdit1 la trei clienti diferiti se va uti-

liza un buton cu urmatoarea procedura:

procedure TForm1.Button4Click(Sender: TObject);

begin

ClientSocket1.Socket.SendText(Edit1.Text);

ClientSocket2.Socket.Sendtext(Edit1.Text);

ClientSocket3.Socket.SendText(Edit1.Text);

Memo1.Lines.Add('text expediat la toate IP-urile: ');

Memo1.Lines.Add(Edit1.Text);

Edit1.text:=' ';

end;

Daca doriti sa fiti si mai selectivi,puteti adauga pentru fiecare client

cate un buton TRadioButton sau TCheckBox,cu ajutorul caruia sa puteti

selecta clientii la care doriti sa trimiteti un anumit mesaj.

Facultativ,puteti adauga o procedura suplimentara cu ajutorul careia,

serverul trimite automat un mesaj de raspuns,atunci cand primeste un

mesaj de solicitare,dar nu doriti sa raspundeti personal ( se va utiliza

tot un evenimet de tipul On ClientRead).

In cazul in care utilizati frecvent o serie de mesaje prestabilite,

puteti adauga o serie de butoane,care transmit automat mesajul respectiv.

Aplicatia poate fi personalizata,in functie de necesitatile d-voastra.

Principalele avantaje sunt reprezentate de volumul foarte mic de memorie

utilizata (nu ocupa spatiu din memoria de RAM) si de gradul mare de

maleabilitate.Se pot utiliza cu succes pentru actionari si automatizari

de procese elementare ( doar pentru cele care nu necesita o precizie

temporala foarte ridicata,deoarece timpul de stabilire a unei conexiuni

poate fi diferit de la o implementare la alta).

Principala aplicatie,ramane insa conversatia cu colegii,intr-o retea

locala,sau chiar intr-o retea Intranet (Internet cu acces limitat).

Daca aplicatia d-voastra este specializata pentru receptionarea de

informatii,puteti utiliza mai multe obiecte ServerSocket,setate pe porturi

diferite,care receptioneaza mesaje de la serii diferite de clienti.

Mesajele receptionate,pot fi arhivate in tabele,pot fi comparate,pot

fi analizate statistic,pot fi centralizate sau mixate in acceasi inter-

fata,pot declansa proceduri de raspuns automat etc...etc...

Obiectele de tip TSocket sunt proiectate exclusiv pentru transferul

de date de tip text.Nu pot fi utilizate pentru semnale audio-video sau

pentru imagini digitale si date de tip bitmap.Cu putina munca se pot

utiliza pentru a transmite si texte in format HTML,care pot fi apoi

preluate si afisate de un webbrowser,dar nu este nici practic si nici

util.Pentru acest gen de aplicatii,exista obiecte mult mai usor de

utilizat si exploatat(vezi versiunile recente de Delphi).

Desi sunt destul de rudimentare,si cu un numar redus de functii,

obiectele de tip tSocket sunt perfect functionale si in reteaua Internet.

Din acest motiv,este bine sa verificati cu atentie orice aplicatie,inainte

de a incerca utilizarea ei in retea.Este prudent sa verificati aplicatia

intr-o retea locala si apoi sa consultati si un administrator de retea,

inaite de a incerca exploatarea in reteaua Internet(orice eroare de

conceptie poate produce disfunctionalitati grave).


-44- Internet - THTTP

Un alt component extrem de util este THTTP (Hypertext Transport Pro-

tocol).Acest obiect,este destinat pentru transferul de file in format

HTML,atunci cand nu este necesara vizualizarea lor.Se utilizeaza pentru a

importa(cu GetDoc) sau pentru a exporta(cu SendDoc),file in format HTML,

care utilizeaza portul HTTP standard (port=80).Poate fi utilizat fie

impreuna cu un browser,fie separat (in cazul in care datele vor fi proce-

sate fara sa fie necesara vizualizarea lor).In plus,prin proprietatile si

metodele sale,THTTP poate oferii o serie de informatii utile referitoare

la datele transferate (numarul de bytes transferati,portul,adresa,metoda

de transfer,tipul de protocol,codul de raspuns etc.).Clasic,se utilizeaza

pentru a prelua periodic,o anumita fila,de la o anumita adresa.

Pentru a asocia un obiect HTTP,la un browser,copiati exemplul din

Prj44 intr-un director nou (Prj46).Adaugati in Form un obiect de tip

THTTP,un camp TLabel si un nou buton.Redenumiti butonul HTTP si apoi

atribuiti acestui buton urmatoarea procedura OnClick:

procedure TForm1.Button3Click(Sender: TObject);

begin

HTTP1.URL:='file:///C:/HTMLTXT/Text3.htm';

HTML1.RequestDoc(HTTP1.URL);

HTTP1.GetDoc(HTTP1.RemoteHost+HTTP1.Document,'','');

Label1.Caption:='adresa accesata= '+HTTP1.URL;

end;

Pentru a verifica daca documentul a fost preluat,selectati obiectul

THTTP si din Events alegeti OnDocOutput si adaugati urmatoarea procedura:

procedure TForm1.HTTPDocOutPut(Sender: TObject;

const DocOutput: DocOutput);

var b1: variant;

begin

beep;

b1:=HTTP1.BlockResult;

{ Label1.Caption:=b1; }

end;

Acum,in momentul in care documentul solicitat este preluat se va auzi un

beep.

Pentru a verifica daca nu exista nici o eroare,selectati pentru HTTP si

evenimentul OnError si adaugati urmatoarea procedura:

procedure: tForm1.HTTP1Error(Sender:TObject;Number:Smallint;

var Description: WideString; Scode: Integer;const Source,

HelpFile:WideString; HelpContext:Integer;var CancelDisplay:WordBool);

begin

Label1.Caption:=Description;

end;

Compilati si executati programul (F9).In mod normal,se va afisa fila HTML

din ComboBox.Text.La apasarea butonului HTTP,se va afisa fila specificata

in procedura OnClick si se va auzi un beep.Datorita faptului ca este o

fila locala,se va returna un mesaj de eroare de tipul : Error Connecting

Daca utilizati fila in retea,inlocuiti in HTTP.URL fila Text3.htm

printr-o adresa reala.In acest caz,puteti apela GetDoc,cu HTTP.UTL.

Daca nu se returneaza nici unmesaj de eroare,puteti indeparta acoladele

din linia { Label1.Caption:=b1 } pentru a afisa rezultatul operatiei de

preluare a filei.


-45- HTML(limbaj)

LIMBAJUL HTML (notiuni elementare)
Limbajul HTML(Hypertext markup language) necesita un manual separat.

Pentru intelegerea obiectelor si a functiilor care opereaza cu date de

tip text editate in acest limbaj,sunt necesare totusi un minimum de no-

tiuni.

Acest limbaj,a fost special conceput pentru filele din aplicatiile WEB,

cu scopul de a permite utilizarea de formate diferite,pentru date grupate

in aceeasi fila de text.Astfel,se pot utiliza titluri si subtitluri,liste

si tabele,imagini sau obiecte incluse,care utilizeaza fonturi diferite,

cu dimensiuni si culori diferite,sau chiar realizeaza si legatura cu

alte file,sau cu alte date continute in aceeasi fila.

Pentru acest scop,datele dintr-o fila HTML sunt subimpartite in unitati

de indexare mai mici,denumite TAG-uri.Fiecare TAG,contine un anumit tip

de date,cu un anumit format,si cu un anumit mod de executie.Pentru deli-

mitarea unui tag se utilizeaza caracterele < si >.Intre cele doua carac-

tere se include numele TAG-ului,iar datele se incud intre doua astfel de

grupuri: EXEMPLU: date

Pentru a specifica terminarea unui tag,se adauga si semnul /.

Pentru a delimita inceputul unei file se utilizeaza iar pentru a

marca sfarsitul filei se utilizeaza .

O fila HTML,poate fi subimpartita in titluri si date propriu zise.Pentru

acest scop se utilizeaza tag-urile: .... si respectiv

....si

....continutul propriu zis al documentului.....

(vezi si Text4.htm)

Pentru a ingrosa evident caracterele se poate utiliza tag-ul

EXEMPLU: Textul accentuat

Pentru a schimba tipul fontului se poate utiliza

EXEMPLU: Textul dorit

Pentru a schimba culoarea fontului se poate utiliza

EXEMPLU: Culoarea este verde

in expresia hexazecimala care urmeaza dupa caracterul # primele doua

caractere determina culoarea rosie,urmatoarele culoarea verde,iar ulti-

mele culoarea verde.Culoarea rezultata va fi cea determinata de combi-

narea celor trei culori fundamentale (la fel ca functia RGB() ).

Pentru culorile de baza (setul de 16 culori) se poate specifica si

textual numele culorii (color="red" sau color="lime" etc...).

Pentru a schimba dimensiunea fonturilor se poate utiliza

EXEMPLU: Text majorat

Cele trei setari se pot grupa in una singura:

EXEMPLU: Text

Pentru a adauga o cheie de acces (un short-cut) se poate utiliza

accesKey=" ".Cheia de acces va fi apasata impreuna cu tasta Atl(in sis-

temul Windows).De exemplu pentru a genera un short-cut spre un alt docu-

ment,se va utiliza un algoritm de genul:




Cheia de acces este litera s.(Tastati Alt + s)...apoi ENTER !




Va realiza un short-cut spre o fila locala.In mod similar,puteti realiza

un short-cut spre orice adresa de web.

Pentru a adauga comentarii,se va utiliza caracterul

tag-ului,apoi comentariile propriu zise vor fi incluse intre grupuri de

cate doua liniute: --comentariu-- --comentariu2--

EXEMPLU:

Pentru a realiza un tag transparent,se va utiliza semnul # imadiat

dupa <.Tag-urile transparente nu sunt afisate de catre browser,dar

pastreaza un spatiu de memorie si o adresa de indexare,care poate fi

utilizata de catre PageProducer pentru a reformata textul respectiv.

EXEMPLU: vezi Text5.htm si Prj50




Yüklə 1,42 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   16




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin