|
Puteti utiliza acest obiect si pentru a salva filele editate,pentru
|
səhifə | 5/16 | tarix | 03.01.2019 | ölçüsü | 1,42 Mb. | | #89992 |
| Puteti utiliza acest obiect si pentru a salva filele editate,pentru
a arhiva date cu un format fix,pentru a introduce titlul sau antetul in
file care urmeaza sa fie editate ulterior,etc.
Mai mult,puteti utiliza metoda RegisterConversionFormat pentru a face
conversii intre formatul original al filelor si cel editat de d-voastra.
-25- Win32 - TTRACKBAR si TPROGRESSBAR
TTrackBar este un obiect destinat pentru configurarea unor optiuni din
aplicatie,in timpul executiei (Exemplul clasic este butonul de sunet).
Este format din o bara de defilare,o scara gradata si un buton culisant
cu un indicator spre marcajele din scara gradata.In timpul executiei,
butonul poate culisa fie cu ajutorul sagetilor de la tastatura,fie prin
tractionare cu butonul mouse.Obiectul prezinta o serie de proprietati si
metode care permit utilizarea si configurarea obiectului.
EXEMPLU: (vezi Prj25)
Salvati o fila noua si proiectul in dierectorul Prj25.
Adaugati in Form un obiect de tip TTrackBar si un obiect de tip TLabel.
Utilizati Object Inspector pentru a seta aspectul celor doua obiecte (
culori,fonturi etc.),apoi alegeti pentru TrackBar1 Events si adaugati in
OnChange(dublu click) urmatoarea procedura:
procedure TForm1.TrackBar1Change(Sender: TObject);
var pozitie:variant;
begin
pozitie:=TrackBar1.Position;
Label1.Caption:=pozitie;
end;
Tastati F9 si executati aplicatia.Observati ca la deplasarea butonului
culisant,TLabel afiseaza pozitia.In mod similar,obiectul poate fi utilizat
pentru a executa o secventa de operatii (Exemplu: la fiecare gradatie
poate afisa o alta imagine de tip BitMap,intr-un obiect de tip TImageList).
TProgressbar este un obiect destinat pentru a prezenta gradul de exe-
cutie al unui proces,etapa de executie a unei proceduri sau a unei functii
sau stadiul de executie al unei aplicatii.Este format dintr-o bara de de-
filare in interiorul careia se adauga progresiv,un set de dreptunghiuri
albastre,pana cand intreaga bara de defilare este ocupata.Acest obiect
afiseaza aproximativ stadiul de executie al procesului respectiv.
EXEMPLU: (vezi Prj26)
Salvati o fila noua si proiectul.
Adaugati in Form un obiect de tip TProgressBar si un buton.Setati din
Object Inspector optiunile preferate pentru cele doua obiecte,apoi in
Events atribuiti butonului urmatoarea procedura OnClick:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
ProgressBar1.Position:=ProgressBar1.Position+10;
end;
Tastati F9 si executati aplicatia.La fiecare click pe buton,bara de defi-
lare se va completa cu cateva dreptunghiuri colorate.Utilizati Min si
Max pentru a determina cursa butonului culisant (valaorea de pornire si
respectiv cea de oprire),sau modificati valoarea fiecarui pas,astfel incat
sa satisfaca necesitatile aplicatiei.
Un obiect de acest gen se poate conecta si cu un timer,astfel incat sa
execute o operatie al un anumit interval de timp,sau sa afiseze timpul
ramas pana la completarea procesului (atunci cand se cunoaste durata to-
tala de executie).Pentru exercitiu,puteti incerca sa cuplati obiectul cu
un ceas al sistemului,astfel incat sa execute o operatie la fiecare se-
cunda,sau sa afiseze (cu TLabel auxiliar) cate secunde mai sunt pana la
epuizarea procesului.
-26- Win32 - TUPDOWN si THOTKEY
TUPDOWN este un obiect utilizart pentru incrementarea sau decrementarea
unei valori.Obiectul este format din doua sageti.Un click de mouse pe
sageata in sus,incrementeaza valoarea iar un click pe sageata in jos,de-
crementeaza valoarea numerica.Obiectul contine o serie de proprietati
pentru configurarea aspectului si pentru controlul operatiilor.Astfel,
Min si Max stabilesc domeniul de valori acceptate,iar Position returneaza
valoarea actuala.TUpDown se utilizeaza pentru ajustarea unei valori.
EXEMPLU:
Salvati o fila noua si proiectul in Prj27.
Adaugati in Form un obiect de tip TUpDown si un obiect de tip TLabel.
Daca doriti,redimensionati obiectul TUpDown,apoi selectati Events si
atribuiti in OnChanging urmatoarea procedura:
procedure TForm1.UpDown1Changing(Sender:TObject;var AllowChange:Boolean);
var valoare:variant;
begin
valoare:=UpDown1.Position;
Label1.Caption:=valoare;
end;
Tastati F9 si executati aplicatia.Executati click de mouse pe sageata in
sus.Daca doriti sa modificati valoarea saltului,puteti utiliza din Object
Inspector proprietatea Increment (De exemplu 5).Pentru a putea utiliza si
valori negative,trebuie modificata valoarea din Min (Exemplu: -5).
THotKey este un obiect destinat pentru adaugarea sau schimbarea tastei
de shortcut.Se poate utiliza pentru a schimba in timpul executie tasta
utilizata pe post de shortcut (tasta pentru executie rapida a obiectului).
In plus,permite si formarea de combinatii complexe pentru tasta HotKey.
EXEMPLU:
Salvati o fila noua si proiectul in Prj28.
Adaugati in Form un obiect TMainMenu si executati un dublu click pe acest
obiect.In Form1.MainMenu1 executati un click cu butonul drept in drept-
unghiul albastru si selectati Insert From Template,apoi MDI Frame Menu.
Dupa aparitia meniului executati un click pe Exit si alegeti din Object
Inspector ShortCut.Fixati o tasta oarecare de shortcut(Exemplu: E).Apoi
selectati Events si dublu click in OnClick.Introduceti in procedura,
"Close;" .Tastati F9 si executati aplicatia.Observati ca meniul Exit din
File are doua taste shortcut.Tasta "E" se poate utiliza atunci cand
meniul nu este selectat,iar tasta "x" este shortcut-ul implicit.Pentru a
verifica shortcut-ul tastati Run,apoi "e".
Adaugati in Form si un obiect THotkey.Alegeti din Object Inspector
proprietatea HotKey si fixati o noua combinatie (Exemplu: Ctrl+A).Apoi
executati un click pe Events si dublu click in OnEnter si redefiniti pro-
cedura generata astfel:
procedure TForm1.HotKey1Enter(Sender: TObject);
begin
Exit1.ShortCut:=HotKey1.HotKey;
end;
Tastati din nou F9 si executati aplicatia.Observati ca tasta de shortcut
"e" a fost inlocuita cu "Ctrl+A".Pentru a iesi direct din aplicatie,fara
sa mai selectati meniul File,puteti utiliza Ctrl+A.Daca doriti sa reveniti
la vechea setare,alegeti pentru THotKey proprietatea Visible si setarea
False.Acum tasta "e" este din nou functionala(reveniti cu Visible=True).
-27- Win32 -TANIMATION,TDATETIMEPICKER
TAnimation este un obiect destinat pentru vizualizarea clipurilor video
de tip AVI (Audio Video Interleaved).Desi clipurile contin si sunet,acest
obiect nu poate reda decat componenta video.Clipurile sunt formate din
imagini de tip bitmap,care se succed cu o anumita frecventa,pentru a
forma un efect de animatie.TAnimation accepta orice clip AVI in care
filele nu sunt comprimate sau au fost comprimate cu RLE(run-length enco-
ding).Daca s-a utilizat orice alt tip de compresie,clip-urile vor fi
decomprimate inainte de a fi apelate.
EXEMPLU:
Adaugati in Form un obiect de tip TAnimate.Alegeti din Object Inspector
FileName si selectati Demos/Coolstuf/Cool.Setati apoi Repetitions la
valoarea 10 si Active la valoarea True.Tastati F9 si observati efectul
de animatie.
Daca doriti un program mai complex,puteti sa adaugati un numar de bu-
toane prin care sa controlati modul de executie.Atribuiti fiecarui buton
una dintre proprietatile obiectului TAnimate,astfel incat sa realizati
un panou de comanda.Pentru a porni sau opri executia,puteti utiliza
proprietatea Active (True sau False) iar pentru a specifica numarul de
operatii efectuate,puteti utiliza Repetitions.Pentru a redimensiona auto-
mat dimensiunea obiectului se poate utiliza AutoSize iar pentru a speci-
fica imaginea de la care incepe si respectiv cea cu care se termina
clipul puteti utiliza StartFrame si StopFrame,etc...(Vezi Prj29).
TDateTimePicker este un obiect specializat pentru preluarea de date in
format de data calendaristica sau respectiv de tip ora/minut/secunda.
Cu ajutorul acestui obiect puteti selecta,sau puteti seta si reseta
data sau ora si apoi puteti utiliza o metoda a obiectului pentru a
arhiva informatia respectiva.In momentul executiei,obiectul afiseaza data
curenta.Din Object inspector puteti selecta modul de afisare prin pro-
prietatea DateMode.Daca doriti sa afisati date de tip orar,selectati din
Kind tipul dtkTime.Restul proprietatilor sunt pentru configurarea dimen-
siunilor,culorilor fonturilor etc.
EXEMPLU:
Adaugati in Form un obiect de tip TDateTimePicker.Alegeti pozitia
dorita si setarile preferate (Exemplu fonturi size 18).Tastati F9
si apoi apasati butonul de navigare.Din obiectul afisat,alegeti data
dorita.Daca doriti ca data sa fie afisata in format complet,alegeti din
DateFormat optiunea dfLong.
Pentru a arhiva datele,puteti utiliza metoda GetTextBuf.In exemplul
de mai sau,adaugati un buton si un camp TLabel(Standard).Redenumiti bu-
tonul si atribuiti acestui buton o procedura de genul:
procedure TForm1.Button1Click(Sender: TObject);
var tampon: PChar;
nr:integer;
begin
tampon:=' ';
nr:=DateTimePicker1.GetTextBuf(tampon,24);
Label1.Caption:=tampon;
end.
Tastati F9 si executati proiectul(vezi si Prj30).Datele preluate pot fi
introduse in textul editat sau pot fi utilizate pentru operatii matematice.
-28- Win32 - TTREEVIEW si TLISTVIEW
TTreeView este un obiect care afiseaza ierarhic o lista inlantuita de
elemente,cum sunt titlurile unor documente,directoarele si filele dintr-o
unitate de disc sau intrarile intr-un tabel indexat,etc.
Obiectul este format din noduri,care asociaza un identificator si un
numar optional de intrari spre elementele care il formeaza.Fiecare nod,
poate avea la randul sau o lista intreaga de sub-noduri.La orice click
de mouse pe un nod,se va afisa lista extinsa a sub-nodurilor sale.Cel
mai cunoscut obiect de acest gen este Windows Commander.
TTreeView se utilizeaza pentru a forma astfel de liste de elemente.
EXEMPLU: (vezi Prj31)
Salvati o fila si proiectul in Prj31.
Adaugati in Form un obiect de tip TTreeView,un buton si un camp TLabel.
Din ObjectInspector selectati pentru TreeView1 campul Items si utilizati
Tree View Items Editor pentru a introduce elementele dorite.In partea
din drepata a obiectului introduceti numele acestuia si numarul de index-
are (Image Index,Selected Index si State Index).Puteti utiliza Load pentru
a incarca elemente predefinite.Confirmati cu OK.In continuare puteti uti-
liza proprietatile si metodele obiectului.Pentru a determina care dintre
elemente a fost selectat la un moment dat,atribuiti butonului urmatoarea
procedura OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var nod:TTreeNode;
begin
nod:=TreeView1.Selected;
Label1.Caption:=nod.Text;
end;
Tastati F9 si executati obiectul.
TListView este un obiect destinat pentru a afisa o lista de elemente,
in mai multe feluri(izolate,in coloana,in forma de tabel etc.).Este ase-
manator cu TTreeView,dar elementele sunt in forma de siruri sau grile si
pot fi afisate sub forma de coloane (cu butoane de titlu),ordonate orizon-
tal sau vertical,sau insotite de icon-uri.Obiectul ofera un numar mare
de proprietati si metode,care simplifica operatiile asupra elementelor.
EXEMPLU: (vezi Prj32)
Salvati o fila si proiectul in Prj32.Adaugati in Form un obiect de tip
TListView,un buton si un camp TStaticText1.Pentru a introduce elemente in
obiectul ListView1,executati un click de mouse cu butonul drept,pe aria
obiectului si alegeti Columns Editor sau Items Editor (sau alegeti din
Object Inspector Items si Columns).Pentru a vedea toate elementele incluse
alegeti din ViewStyle optiunea vsReport iar pentru a afisa o grila intre
elemente,selectati GridLines True.Alegeti restul optiunilor dupa bunul
plac (culori,fonturi etc.).Apoi asociati butonului urmatoarea procedura
OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var index1:variant;
begin
index1:=ListView1.Selected.Caption;
StaticText1.Caption:=index1;
end;
Tastati F9 si executati aplicatia.Selectati un element,apoi apasati buto-
nul.Nu ezitati sa experimentati si alte metode sau proprietati.
-29- Win32 -THEADERCONTROL si TSTATUSBAR
THeaderControl este un obiect utilizat pentru a adauga un antet(titlu).
Obiectul contine un set de suprafate de tip buton,care pot fi redimensio-
nate in timpul executiei.Fiecare astfel de suprafata este un obiect de
tip THeaderSection si este inclus sub forma de lista,in proprietatea
Sections.Se poate utiliza pentru a afisa anumite proprietati ale unui
obiect din aplicatie,sau pentru a declansa o procedura.Mai mult,poate fi
tras ca o cortina,peste obiectele din fereastra (Exemplu:TEdit) care vor
ramane insa active (in background).
EXEMPLU:
Salvati o fila noua si proiectul in Prj33.Adaugati un obiect TLabel.
Adaugati in Form un obiect de tip THeaderControl si ajustati dimensiunile
dupa bunul plac.Executati un click de mouse cu butonul drept,pe aria
acestui obiect si selectati Selections Editor.Acum antetul(titlul) poate
fi subimpartit in mai multe componente (obiecte THeaderSection).Scrieti
un text oarecare (Exemplu: Antet1 ) in proprietatea Text.Apoi selectati
din nou THeaderControl si alegeti din Events OnMouseDown.Atribuiti urma-
toarea procedura:
procedure TForm1.HeaderControl1MouseDown(Sender:TObject;
Button: TMouseButton; Shift: TShiftState; X,Y:Integer);
begin
Label1.Caption:='Declanseaza executia unei proceduri !';
end;
Tastati F9 si executati obiectul.Selectati cu mouse Antet1 iar Tlabel va
afisa textul specificat (Atentie ca THeaderControl sa nu acopere textul).
Daca doriti sa observati si efectul de cortina,adaugati si alte obiecte
in Form,la care asociati cate un text de tip TLabel.Apoi asociati si un
buton care redimensioneaza HeaderControl cu: HeaderControl1.Height:=300.
TStatusBar este un obiect similar,destinat pentru a realiza o bara de
stare de tip Windows.Puteti utiliza acest obiect pentru a afisa o serie
de informatii utile,sau chiar pentru a declansa o procedura oarecare.
Se compune din suprafete plane,in coloane care formeaza o lista de
obiecte arhivata in TStatusPanel.Fiecare dintre aceste suprafete poate
afisa un anumit text sau mesaj.Obiectul are si o serie de proprietati si
metode auxiliare,utile pentru a configura obiectul.
EXEMPLU:
Salvati o fila si proiectul in Prj34.Adaugati un obiect de tip TLabel.
Adaugati un obiect de tip TStatusBar si apoi executati deasupra lui un
click de mouse cu butonul drept.Selectati Panel Editor si utilizati
caseta de dialog pentru a introduce texte in obiectele de tip StatusPanel
adaugate automat (cu Add).Configurati bara de status dupa bunul plac,apoi
alegeti din Events OnClick si adugati o procedura de genul:
procedure TForm1.StatusBar1.Click(Sender:TObject);
begin
Label1.Caption:='Bara de status a fost activata !';
end;
Tastati F9 si executati obiectul.
In mod similar,se poate atribui orice alta procedura,dar acest obiect
nu este destinat pentru a controla procesele ci doar pentru a afisa
informatii despre un obiect oarecare; pentru a prezenta memoria libera,
data si ora,sau o alta operatie simpla de acest gen.
Obiectele StatusPanel nu sunt reconfigurabile in timpul executiei.
-30- Win32 -TTOOLBAR si TCOOLBAR
TToolBar este un obiect destinat pentru a grupa obiecte de tip buton,
sub forma de "bara de unelte".Spre deosebire de TPanel,acest obiect aran-
jeaza si dimensioneaza butoanele automat.Butoanele sunt obiecte de tip
TToolButton si pot oferi suport pentru alte obiecte,astfel incat bara de
unelete sa contina si alt fel de obiecte(care sunt sustinute de cate un
buton invizibil).Este un obiect extrem de practic pentru introducerea
de controale si comenzi.
EXEMPLU:
Salvati o fila si proiectul in Prj35.Adaugati un obiect de tip TLabel
si un obiect de tip TToolBar.Redimensionati bara de unelte si alegeti
culoarea dorita.Pentru a adauga butoane,executati un click de mouse cu
butonul drept si alegeti New Button,iar apoi alegeti New Separator,daca
doriti ca butoanele sa fie separate de un spatiu simetric.
Pentru a scrie pe butoane,selectati butonul cu un click,scrieti in
Caption textul dorit,iar apoi selectati din nou TToolBar si alegeti
pentru proprietatea ShowCaptions optiunea True.
Restul butoanelor vor fi dimensionate si spatiate automat.
Pentru a adauga o procedura,selectati pentru buton Events si apoi alegeti
evenimentul dorit.Exemplu: pentru OnClick scrieti procedura:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
Label1.Caption:='Primul buton a fost selectat !';
end;
Tastati F9 si executati aplicatia.Daca doriti alt tip de obiect,pur si
simplu adaugati obiectul in ToolBar (Exemplu: TEdit).
TCoolBar este un obiect specializat pentru gruparea ordonata a unor
controale.Este format din benzi denumite TCoolBand,care pot contine cate
o colectie de obiecte de tip Windows,sunt mobile si reconfigurabile.
Acest obiect,(la fel ca si TListView) necesita prezenta unei biblioteci
DLL denumita COMCTL32.DLL.Aplicatiile care utilizeaza acest tip de obiect
nu vor putea fi executate decat in prezenta acestei biblioteci(care este
inclusa in mod normal in Windows\System sau in Windows\System32).
Fiecare astfel de banda,va avea un aspect propriu (care poate fi defi-
nit cu o imagine de tip BitMap) si va contine un grup de obiecte Windows.
Acest obiect este asemanator cu un meniu,dar poate contine obiecte dife-
rite si poate avea un aspect personalizat.
EXEMPLU: (vezi si exemplul Prj36)
Salvati o fila noua si proiectul in Prj36.Utilizati din meniul princi-
pal Tools si Image Editor pentru a desena cateva imagini de tip BitMap.
Adaugati aceste imagini in directorul Prj36,apoi puteti incepe proiectarea
obiectului.Adaugati in Form un obiect de tip TCoolBar.Click drept de mouse
si selectati Bands Editor pentru a adauga cateva benzi TCoolBand.Apoi
selecati fiecare banda si alegeti BitMap.Din Picture Editor alegeti Load
si incarcati una dintre imaginile BitMap adaugate anterior in Prj36.
Utilizati Text pentru a schimba numele.Apoi adaugati in Form un obiect de
tip TToolBar.Adaugati in TToolBar cateva butoane,apoi selectati prima
banda din TCoolBar (CoolBar1.Bands[0]) si alegeti din Proprietatea Control
ToolBar1.Butoanele vor fi activate cu proceduri,la fel ca orice buton.
Tastati F9 si executati aplicatia.
In mod similar,puteti adauga in benzi orice alt obiect.
-31- System - TTIMER si TPAINTBOX
Urmatoarea paleta de componente,se numeste System si contine obiecte
specializate pentru interactiunea cu sistemul de operare.
TTimer este un obiect specializat in repetarea unei operatii,la un
anumit interval de timp.Acest obiect nu este vizibil in fereastra (este
un component nonvizual) ci este un modul specializat pentru date,asa cum
sunt si componentele destinate pentru accesarea datelor (TTable etc.).
TTimer se utilizeaza pentru a declansa o actiune,la intervale regulate.
Pentru a regla intervalul de repetitie se poate utiliza proprietatea
Interval,iar pentru a declansa actiunea,evenimentul OnTimer.Pentru a
intrerupe timerul se seteaza Enabled la valaorea False.
EXEMPLU: (vezi exemplul Prj37)
Salvati o fila si proiectul in Prj37.Adaugati un obiect TLabel si
trei obiecte TTimer.Selectati fonturile si culorile dorite pentru TLabel.
Apoi selectati cele trei timere si atribuiti in Events/OnTimer urmatoa-
rele proceduri (cate una pentru fiecare timer):
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Color:=clYellow;
Label1.Caption:='Primul timer a fost activat !';
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Label1.Color:=clAqua;
Label1.Caption:='Al doilea timer este activ !';
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
Close;
end;
Apoi selectati pe rand cele trei timere si setati proprietatea Interval,
dupa cum doriti sa se desfasoare evenimentele.Exemplu: Interval=3000
pentru Timer1,5000 pentru Timer2 si 12000 pentru Timer3.
Perioadele de timp setate sunt exprimate in milisecunde.Deci 3000
inseamna 3 secunde.
Tastati F9 si executati aplicatia.Dupa 3 secunde se va afisa primul
mesaj.Dupa alte doua secunde se va afisa cel de al doilea,iar dupa inca
o secunda (total 6 secunde) primul timer termina cel de al doilea ciclu
de trei secunde si se va afisa din nou primul mesaj...etc.Dupa 12 secunde
cel de al treilea timer intrerupe aplicatia.Numarul total de timere
utilizat depinde de sistemul de operare si de memoria libera.
TPaintBox este un obiect destinat pentru a adauga un mic desen in
aplicatie,intr-o arie delimitata de suprafata acestui obiect.Pentru a
accesa suprafata grafica se utilizeaza proprietatea Canvas,iar pentru a
atribui o operatie se utilizeaza evenimentul OnPaint.
EXEMPLU: (vezi si Prj38)
Salvati fila si proiectul in Prj38.Adaugati un obiect TPaintBox si
alegeti culoarea si fontul dorit.Apoi atribuiti in OnPaint o operatie
oarecare.Exemplu: PaintBox1.Canvas.TextOut(5,5,' Textul dorit 1 ! ');
Tastati F9 si executati aplicatia.In mod similar puteti introduce orice
procedura grafica.Pentru obiecte Bitmap este preferabil obiectul TImage.
-32- Win32 TMEDIAPLAYER si TOLECONTEINER
TMediaPlayer este un obiect conceput pentru programarea de aplicatii
destinate sa controleze unitati audio-video,de tip CD-ROM,video-player etc.
Obiectul contine un set de butoane cu ajutorul carora se pot controla
principalele operatii ale aparatului de inregistrare-redare.Aceste butoane
pot fi active sau inactive,vizibile sau invizibile,AN sau color in functie
de optiunile alese din Object Inspector.
TMediaPlayer se poate utiliza impreuna cu aparate care beneficiaza de
un driver de tip MCI (Media Control Interface),care realizeaza interfata
digitala dintre controalele electrice si cele digitale.
Pentru a selecta tipul de aparat utilizat se va utiliza proprietatea
DeviceType,iar pentru a alege fila asupra careia actioneaza se va utiliza
FileName.
EXEMPLU: pentru un CD-ROM cu muzica in format WAV ( vezi si Prj39)
Salvati o fila noua si proiectul in Prj39.Adaugati in Form un obiect
de tip TMediaPlayer si alegeti din Object Inspector AutoEnable = False.
Apoi selectati DeviceType si alegeti tipul de aparat(sau AutoSelect) iar
in FileName selectati fila de tip .wav dorita (Prj39 contine cateva file
.WAV cu sunete emise de balene).Selectati AutoOpen si alegeti True.
Tastati F9 si executati aplicatia.
Acest tip de obiect nu recunoaste decat filele de tip .wav,.avi si .mid.
Pentru file audio-vizuale actuale(MPEG,JPEG etc.) este necesara o versiune
mai recenta a programului(Dephi 5...etc.).
TOleConteiner este un obiect destinat pentru incorporarea si interco-
nectarea obiectelor OLE.Tehnologia OLE(Object Link Embaded) permite acces-
ul la obiecte care sunt active nu doar in programul curent,ci si in alte
programe,sau sunt definite si activate in alt program.Mai exact,prin
aceasta tehnologie se pot accesa proprietatile si metodele acestor obiecte
dar nu se pot modifica codurile de definitie.Mai mult decat atat,un obiect
de tip OLE poate fi utilizat in comun de catre programe care utilizeaza
limbaje de progrmare diferite (C++,Pascal,Delphi etc.).Aplicatia care
contine obiectul OLE poarta numele de server,iar cea care utilizeaza
obiectul poarta numele de client.Exemplele clasice sunt Word si Excel.
Pentru a partaja un obiect cu alte aplicatii,puteti utiliza TOleContei-
ner impreuna cu obiecte de tip ActiveX.
EXEMPLU: (vezi si Prj40)
Salvati o fila noua si proiectul in Prj40.Adaugati un obiect de tip
TOleConteiner si ajustati dimensiunile.Apoi,din meniul principal,alegeti
grupul de obiecte ActiveX(cu sageata din dreapta) si selectati un astfel
de obiect,de exemplu TF1Book(Formula One spreadsheet).
Executati un click cu butonul drept pe TF1Book si alegeti Workbook
Designer.Utilizati acest instrument pentru a introduce datele dorite.
Tabelul realizat,asemanator cu cele din Excel,va putea fi partajat de
catre aplicatii diferite,dar,care utilizeaza tehnologia OLE.
Tastati F9 si executati aplicatia.Observati avantajele acestui obiect (
datele pot fi selectate in linie,pe coloane etc.).
Celelalte obiecte din System (TDdeClientConv,TDdeClientItem,TDdeServer-
Conv si TDdeServerItem) sunt destinate pentru tehnologia de comunicatie
dintre aplicatii denumita DDE (Direct Data Exchange).Tehnologia DDE a
fost scoasa din uz in aplicatiile recente si nu face obiectul acestui
manual(se bazeaza pe conversatii de tip client-server).
-33- Internet
Urmatoarea paleta de componente,denumita Internet,contine un grup de
obiecte specializate pentru facilitarea programarii de aplicatii,pentru
reteaua Internet.Desi simplifica foarte mult munca de programare,aceste
obiecte (in versiunea Delphi 3) nu sunt inca complet automatizate si
necesita un minimum de cumostiinte despre protocoalele de comunicatie
specifice muncii in retea.
Daca sunteti conectat la reteaua Internet si aveti o adresa IP,puteti
sa utilizati adresa proprie pentru a nu deranja pe nimeni din retea.Daca
nu sunteti conectat,este preferabil sa exersati aceste componente intr-o
retea locala,special conceputa (fara sa fie conectata la Internet).
Obiectele din aceasta paleta,utilizeaza protocolul de comunicatie de
tip TCP/IP.Pentru a apela aceste obiecte,este necesar ca acest protocol
sa fie instalat pe calculator (chiar daca nu sunteti conectati la retea).
Daca sunteti incepator,este recomandabil sa nu exersati aceste componente
decat dupa deconectarea de la retea.
Adresele IP sunt formate din patru numere cu valoare cuprinsa intre
0 si 255 (w,x,y,si z) dispuse astfel: w.x.y.z.Exista un grup destul de
mare de astfel de adrese,care a fost rezervat special pentru retelele de
calculatoare care nu vor fi conectate niciodata la Internet.Aceste adrese
sunt definite prin documentul RFC 1918 si sunt excluse din principalele
centrale al retelei Internet,astfel incat este exclusa interferenta
accidentala cu retelele reale.
Aceste adrese sunt: de la 10.0.0.0 la 10.255.255.255 (clasa A)
de la 172.16.0.0 la 172.31.255.255 (clasa B)
de la 192.168.0.0 la 192.168.255.255(clasa C)
Pentru scopuri didactice,este indicat sa utilizati o retea locala,fara
conexiune cu reteaua Internet,in care terminalele utilizeaza adrese IP
din grupul de mai sus.In acest caz,chiar daca reteaua va fi cuplata
accidental la Internet,se exclud posibilele interferente.
Pentru exemplele din manual,am utilizat o adresa IP fictiva 10.10.10.10
intr-o retea locala,necuplata la Internet.
Obiectele din acest grup au fost inlocuite in versiunile recente prin
versiuni mai performante,astfel incat utilizarea lor este din ce in ce
mai rara.In acest manual,vor fi prezentate doar orientativ,la nivel ele-
mentar.Programul Delphi 3 contine si cateva exemple functionale,in
directorul Demos/Internet.
TClientSocket este un obiect destinat pentru a transforma aplicatia res-
pectiva in client TCP/IP.Permite specificarea unei adrese de conectare si
supravegheaza conexiunea cu adresa respectiva.
Prin socket,se intelege in termeni generali un element terminal al unei
retele(o statie de lucru).In termeni software,este asemenator cu un folder
(un director) care contine un tampon de memorie,la care se asociaza auto-
mat si un grup de informatii referitoare la adresa din retea,tipul de
conexiune,etc.Utilizand elemente de tip socket,se poate face schimb de
date intre doua calculatoare,fara sa fie necesar sa cunoasteti toate ele-
mentele intime ale retelei,sau ale protocoalelor de comunicatie.De fapt,
acesta este si principalul lor rost.Utilizatorii nu trebuie sa fie ingi-
neri de sistem pentru a putea schimba informatii.Socket-urile se bazeaza
pe protocolul TCP/IP dar sunt suficient de generale pentru a accepta si
alte protocoale: Xerox NetWork System,Digital's DECnet,Novell IPX/SPX etc.
-34- Internet - ClientSocket
Puteti utiliza aceste obiecte pentru a programa aplicatii Web,char
daca nu sunteti experti in comunicatii.
TClientSocket asigura conexiunea cu un alt calculator.Pentru a speci-
fica adresa calculatorului cu care doriti sa va conectati utilizati pro-
prietatea Address.Daca nu cunoasteti adresa IP,puteti utiliza o adresa
alias gen www.yahoo.com.In acest caz,utilizati proprietatea Host.Pentru
ca sa puteti realiza simultan mai mult decat o singura conexiune,este
bine sa specificati si un numar de port,in proprietatea Port.Pentru a
deschide efectiv conexiunea,se va utiliza metoda Open.
Obiectele de tip ClientSocket nu sunt vizibile in timpul executie.
Daca doriti sa reprezentati aceste obiecte,puteti utiliza un obiect de
tip TImage in care afisati o imagine Bitmap sau un Icon oarecare.
EXEMPLU: ( vezi si Prj41)
Salvati o fila noua si proiectul in Prj41.Utilizati Image editor pentru
a desena un calculator,sau o imagine simbolica oarecare si adaugati in
directorul Prj41 fila BitMap respectiva.
Adaugati in Form un obiect TClientSocket si un obiect TServerSocket.
Sub cele doua obiecte adaugati cate un obiect tip TImage(Additional) si
utilizati proprietatea Picture pentru a afisa desenul realizat.
Adaugati in Form si un buton si 6 etichete TLabel.
Apoi selectati ClientSocket1 si in Object Inspector adaugati o adresa
IP in Address (Exemplu: 172.25.1.25 ) si o adresa alias in Host ( Exemplu:
www.caseta1.ro) la care adaugati un numar de port (Exemplu: 1024).
Optional,adaugati un numar de port si pentru obiectul ServerSocket1.
Utilizati primele doua etichete pentru a denumi cele doua obiecte.
Pentru buton alegeti din Events OnClick si scrieti urmatoarea procedura:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label3.Caption:='Adresa IP= ' + ClientSocket1.Address;
ServerSocket1.Open;
Label5.Caption:='Aplicatia a fost activata !';
Label6.Caption:='Adresa alias= ' + ClientSocket1.Host;
end;
Apoi alegeti ServerSocket1 si adaugati in OnListen din Events urmatoarea
procedura:
procedure TForm1.ServerSocket1Listen(Sender:TObject;
Socket:TCustomWinSocket);
begin
Label4.Caption:='Serverul asteapta solicitari...';
end.
In acest exemplu,aplicatia este transformata in server.Obiectul client
nu a fost activat,astfel incat puteti utiliza orice adresa IP doriti.
Pentru a stabili conexiunea efectiva,trebuie adaugata si metoda Open:
ClientSocket1.Open dar in acest caz adresa IP trebuie sa fie o adresa
reala din retea (sau adresa calculatorului d-voastra).Obiectul server
poate fi activat fara sa fie in conexiune cu o adresa reala.
Exemplul prezinta doar interfata aplicatiei.Pentru a schimba date
efectiv (chat), se pot utiliza metodele: ClientSocket.Socket.Sendtext si
ClientSocket.Socket.ReceiveText sau respectiv SendBuf si ReceiveBuf.
Acest gen de schimb de date,este rudimentar,dar foarte economicos in ce
priveste consumul de memorie.
-35- Internet - ServerSocket
TServerSocket este un obiect destinat pentru a transforma aplicatia in
server TCP/IP.Obiectul de tip server,daca este activat,trece in stare de
astepare (listening) si stabileste conexiunea cu clientul in momenul in
care receptioneaza un mesaj de solicitare (request).
TServerSocket nu are o proprietate pentru adresa,ci doar un numar de
port.Astfel,o aplicatie poate contine un numar mai mare de obiecte server
cu ajutorul carora poate stabili conexiuni simultane,cu mai multe calcu-
latoare din retea,utilizand numere de port diferite.
Pentru a realiza o conexiune completa,aplicatia trebuie sa contina
atat un obiect sever cat si un obiect client.Calculatorul partener de
chat va contine la randul sau un server si un client.Clientul apeleaza
adresa serverului din aplicatia calculatorului partener,si reciproc.
Aplicatia nu poate fi client si server in acelasi timp si pe acelasi
port.Pentru a putea comunica,se pot utiliza porturi diferite pentru
transmisie si respectiv pentru receptie,sau se poate utiliza un singur
port in care operatiile se desfasoara succesiv(client,apoi server,apoi
din nou client...etc.).
Este bine sa utilizati o reprezentare grafica oarecare,prin care sa
semnalati daca aplicatia este conectata ca server sau client.In acest
scop,cel mai simplu este sa utilizati doua imagini grafice diferite:
EXEMPLU: (vezi si Prj42)
Salvati o fila noua si proiectul in Prj42.Adaugati si doua imagini
icon sau Bitmap diferite.Adaugati in Form un obiect de tip ClientSocket
si un obiect ServerSocket.Adaugati un obiect TImage si utilizati Picture
din ObjectInspector pentru a selecta prima imagine.Apoi adaugati un al
doilea obiect TImage,suprapus peste primul si selectati in Picture cea de
a doua reprezentare grafica.
Selectati ClientSocket si introduceti in Address adresa IP instalata in
calculatorul d-voastra (sau o adresa reala) si un numar de port.Apoi
alegeti ServerSocket si introduceti numarul de port (acelasi).
Adaugati in Form doua butoane si un camp TLabel si atribuiti celor
doua butoane urmatoarele proceduri:
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Open;
ClientSocket1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:='STAND BY ! ';
Image2.Visible:=False;
Image1.Visible:=True;
Beep;
ServerSocket1.Close;
ClientSocket1.Close;
end;
Primul buton va activa serverul si va deschide conexiunea,iar cel de al
doilea va inchide conexiunea si serverul.Pentru a deschide o conexiune
este necesar sa existe un server in stare de asteptare (listening),motiv
pentru care serverul trebuie activat inainte de a activa clientul.
Pentru a verifica conexiunea,alegeti evenimentul OnConect din ClientSocket
-36- Internet - THTML
si adaugati urmatoarea procedura:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label1.Caption:='CONECTAT !';
Image1.Visible:=False;
Image2.Visible:=True;
Beep;
end;
Tastati F9 si executati aplicatia.Apasand alternativ cele doua butoane,
conexiunea va fi inchisa sau deschisa,si se va afisa imaginea grafica
corespunzatoare.
Acest exemplu,realizeaza o conexiune inchisa intre serverul si clientul
aplicatiei si are scop demonstrativ.Pentru a realiza o bucla reala,
clientul trebuie sa apeleze un server situat pe un alt calculator si sa
receptioneze prin server mesajele transmise de clientul din acel calcu-
lator.Evenimentul OnConect se poate utiliza pentru a verifica daca
s-a stabilit conexiunea.
Pentru a verifica alte evenimente,obiectul ServerSocket contine si
evenimente ca: OnClientError,OnClientRead,OnClientWrite,OnGetThread etc.
Aceste evenimente se pot utiliza fie pentru a semnaliza in timpul exe-
cutiei fiecare operatie executata (de exemplu se aprinde un led la
fiecare mesaj receptionat sau emis),fie pentru a depana o aplicatie.
In rest,metodele celor doua obiecte (client si server) sunt similare
si pot fi apelate prin intermediul proprietatii Socket (metodele si
proprietatile obiectului de tip TServerWinSocket).
Aceste obiecte sunt destul de rudimentare si nu prea mai sunt compati-
bile cu standardele actuale de comunicatie prin Internet.Pentru comuni-
catii reale in Internet este bine sa utilizati programele comerciale
special destinate acestui scop.Obiectele de tip ClientSocket si Server-
Socket pot fi utile pentru mici aplicatii care ruleaza in retele locale,
pentru schimb de date,in retele locale de informare,sau pentru diverse
aplicatii de actionari si automatizari in retele locale (fara conexiune
cu reteaua Internet reala).Conexiunile realizate astfel sunt foarte
rapide si necesita putina memorie de operare.In retelele mari de comuni-
catie,este foarte probabil ca astfel de mesaje sa fie filtrate (pot fi
interpretate ca potentiali virusi) si sa nu poata patrunde in ciuda
vitezei mari si a dimensiunilor mici.
THTML Active X este probabil cel mai solicitat component din lista de
obicte destinate pentru aplicatiile Web.Acest component permite cautarea
in retea si deschiderea automata a unui file de tip HTML(Hypertext markup
language).O fila de tip HTML este asemanatoare cu o fila de tip text
obisnuita (poate fi redactata si cu NotePad),dar utilizeaza un limbaj
special (o serie de conventii),astfel incat sa permita includerea in fila
de siruri cu fonturi diferite,imagini BitMap,grafice de tip GIF,JPEG,BMP,
si XBM etc.Daca navigati in reteaua Internet,puteti observa ca majoritatea
fielelor de tip text din aplicatiile WEB utilizeaza astfel de file.Nu este
obligatoriu sa cunoasteti acest limbaj pentru a putea utiliza componentul
THTML (dar este foarte util).Puteti gasi o descriere completa a acestui
limbaj la adresa: http://www.w3.org .
-37-
Puteti utiliza un obiect de tip THTML pentru a realiza un browser de
WEB asemanator cu Google,Internet Explorer sau NetScape Navigator (dar
mai rudimentar).In afara exercitiului de programare propriu zis,un astfel
de browser poate fi extrem de util,in diverse situatii:
-operatii in mediu de memorie restrans (depanare)
-doriti sa permiteti deschiderea unui singur site de Web
-nu doriti sa platiti licenta pentru un program comercial
-programati un sistem rapid de comunicatie intre angajatii firmei
-doriti sa evitati filtrele de protectie din programele comerciale
-doriti sa deschideti mai multe file de web cu minimum de memorie ocupata
-doriti sa imprimati automat doar cateva date selective...etc.
THTML permite si deschiderea directa a unui document de tip HTML,fara
sa implice si o cautare in retea.In plus,obiectul permite analiza auto-
mata a datelor preluate si navigarea in interiorul paginei preluate.In
plus,THTML se poate utiliza si pentru analiza nonvizuala a unui astfel
de document (documentul este preluat si analizat dar nu este afisat).
Pentru a prelua date cu ajutorul acestui obiect,se pot utiliza mai
multe metode:
1. Metoda explicita-apeland metodele RequestDoc sau RequestSubmit
2.Selectand un link activ-apeland un obiect cu care HTML este linkat
3.Selectand un obiect inclus in componentul HTML (cu DoRequestEmbedded)
4.Utilizand evenimentul DoRequestSubmit
Prima metoda este cea mai simpla si cea mai clara.Se pot apela si
obiectele HTML incluse in stream-uri,dar acest tip de apel presupune o
buna intelegere a modului de lucru cu streamuri (file virtuale).
THTML are urmatoarele limitari (deficiente):
-textul selectat nu poate fi copiat in memoria clipboard
-obiectul nu poate fi activat automat
-nu determina si nu apeleaza serverele de tip Proxy Server
-nu deschide listele FTP
-nu deschide documentele multiple (majoritatea site-urilor actuale)
In concluzie,THTML nu este obiectul ideal pentru programarea unor apli-
catii WEB actuale si nu deschide automat majoritatea site-urilor de WEB,
dar poate fi utilizat cu succes pentru aplicatii simple,sau pentru a
deschide rapid si economic o fila de tip HTML din retea ( de exemplu
pentru a actualiza rapid si economic o serie de date uzuale,zilnice).
Majoritatea proprietatilor acestui obiect sunt utile pentru a configura
aspectul datelor preluate.Metodele sunt destinate pentru preluarea si im-
primarea datelor (puteti realiza aplicatii care preiau si imprima zilnic
o serie de date din retea).Obiectul este dotat cu un numar mare de eveni-
mente,destinate pentru procedurile de analiza si sortare a datelor pre-
luate.Puteti utiliza aceste evenimente,pentru a selecta dintr-o fila de
tip HTML doar un anumit tip de date,sau doar a anumita variabila care
se modifica zilnic (Exemplu: puteti prelua cursul zilnic al actiunilor
pentru o singura societate comerciala,dintr-o lista cu sute de astfel de
societati).
Mai mult,nu este necesar sa afisati datele preluate.Fila HTML poate fi
analizata in background si dupa preluarea si selectarea datelor dorite,
acestea pot fi imprimate direct,in timp ce utilizatorul desfasoara o alta
activitate.Evenimentele pot fi utile si pentru depanarea unor aplicatii
(Exemplu: ParseComplete verifica daca analiza datelor a fost completa).
-38-
Cea mai simpla aplicatie,este deschiderea unei file HTML:
EXEMPLU: (vezi si Prj43)
Deschideti o aplicatie noua.Salvati fila si proiectul intr-un director
(Prj43).Adaugati in fila un obiect Panel si extindeti Panel pentru toata
fila.Apoi adaugati in coltul de sus un obiect TComboBox si imediat sub
acesta un obiect de tip THTML.Adaugati si doua butoane,denumite START si
STOP.
Selectati ComboBox1 si introduceti in Object Inspector,in campul Text
adresa de WEB a documentului dorit (Exemplu: www.locuridemunca.ro).
In continuare,atribuiti celor doua butoane cate o procedura OnClick:
procedure TForm1.STARTClick(Sender: TObject);
begin
HTML1.RequestDoc(ComboBox1.text);
end;
si procedure TForm1.STOPClick(Sender: TObject);
begin
HTML1.Cancel(0);
end;
Pentru ca fila sa fie activata si deschisa in momentul in care lansati
aplicatia cu Run,selectati obiectul HTML1 si atribuiti in Events,pentru
evenimentul OnEnter urmatoarea procedura:
procedure TForm1.HTML1Enter(Sender: TObject);
begin
STARTClick(Sender);
end;
Acum browserul de WEB este gata.Tastati F9 si executati aplicatia.Pentru
a deschide alta fila,schimbati textul din ComboBox1.Text si lansati din
nou.
Browserul astfel realizat este extrem de rudimentar.Puteti adauga o
bara de stare si cateva proceduri auxiliare destinare pentru evaluarea
si interpretarea datelor.Puteti adauga unul sau mai multe filtre de date,
astfel incat datele preluate sa nu poata corupe memoria de operare in
caz ca fila preluata contine date ce depasesc capacitatea de procesare
a hard-ului instalat...etc.
Pentru aplicatiile realizate de d-voastra,care apeleaza la date din
reteaua Internet,este bine sa respectati normele elementare de civilizatie
pentru a nu deranja proprietarul site-ului.Este bine sa exersati cu
un document cunoscut,de la o adresa simpla si clara,cat mai apropiata
regional (din aceeasi tara) si pentru care proprietarul si-a dat acordul
(exista o serie de servere specializate pentru operatii de acest gen).
Dupa ce browser-ul d-voastra este functional,puteti adauga o serie de
facilitati noi.De exemplu,fila preluata poate fi schimbata dinamic,in
timpul executiei,etc.
Atunci cand programati si utilizati frecvent sau simultan un numar
mare de astfel de aplicatii,cantariti cu mare atentie fiecare procedura
si fiecare artificiu de programare adaugat.Fiecare astfel de artificiu
adauga ceva la memoria consumata (de cele mai multe ori inutil).Pentru
a preveni supradoparea memoriei de operare este bine sa programati doar
proceduri care lucreaza efectiv cu datele.Desenele animate,efectele gra-
fice colorate si clip-urile publicitare sunt apanajul programelor comer-
ciale,cu care nu are rost sa concurati.
-39- Internet - HTML
Pentru exercitii cu componentul THTML si pentru a invata limbajul de
editare al filelor HTML,este bine sa utilizati doar file locale,arhivate
in calculatorul d-voastra,cu conexiunea de Internet inchisa.
Deschiderea unei file locale se realizeaza identic cu cea pentru filele
din retea,dar calea de acces la fila se formeaza astfel:
URL = file://
Dostları ilə paylaş: |
|
|