Sunteți pe pagina 1din 11

Continuare Curs 3

COMPNENTE VISUALE (DE DATE)


Componenta DBEdit
Componenta DBMemo
Componenta DBImage
Componenta DBListBox
Componenta DBComboBox
Componenta DBRadioGroup
Componenta DBCheckBox
Componentele DBLookupListBox i DBLookupComboBox
Componenta DBRichEdit
Componenta DBCtrlGrid
Alte componente de date
ntrebri i rspunsuri
Chestionar
Exerciii
3.2.5 COMPONENTA BDEDIT
Componenta BDEdit afieaz coninutul unui cmp specificat, din articolul actual al
bazei de date, sub forma unei linii de ediate, efectund astfel controlul editrii. Specificarea
cmpului se realizeaz prin proprietatea Dataield. Coninutul cmpului afiat poate fi
modificat. Componenta BDEdit, ca i componenta DBText, nu o!er" propriet"#i$ metode i
e%enimente speci!ice ba&elor de date, altele dect cele comune tuturor componentelor.
3.2. COMPONENTA DBMEMO
Componenta DBMemo este ersiunea de date a componentei !emo standard. Se a
folosi aceast component pentru a se afia datele din cmpurile bazei de date care conin
cantiti mari de text. "roprieti ce se or seta#
Specificarea cmpului se realizeaz prin proprietatea Dataield. Coninutul cmpului
afiat poate fi modificat.
"roprietatea AutoDispla' controleaz dac datele din cmpurile irului de date sunt
afiate automat atunci cnd cursorul se mut la o alt $nre%istrare. Cnd &utoDispla'
este actiat ( True ( datele sunt afiate automat. Cnd &utodispla' este dezactiat (
)alse ( utilizatorul trebuie s dea dublu clic* pe DB!emo pentru a afia datele +sau s
apese Enter,.
"entru a fora memo-ul s afieze coninutul su prin cod, se a folosi o metod $nrudit numit
LoadMemo. &ceast metod se a folosi numai atunci cnd &utoDispla' este dezactiat (
)alse.
./
3.2.! COMPONENTA DBIMA"E
Componenta DBImage este folsit pentru a a!ia date cu obiecte binare mari +BLOB,
care sunt stocate $n format ima%ine. DB0ma%e nu este neaprat o component care poate fi doar
citit. Se poate sc1imba o ima%ine prin afiarea ima%inii din clipboard sau folosind proprietatea
"icture pentru a $ncrca fiierul de pe disc. 2rmtoarea linie de cod a sc1imba ima%inea $n
timpul rulrii pro%ramului#
DBImage1.Picture.LoadFromFile(peregrine.bmp);
"rincipalele proprieti DB0ma%e controleaz modul $n care ima%inea este afiat. Sunt descrise
dup cum urmeaz#
"roprietatea AutoDispla' funcioneaz exact cum a fost descris de componenta
DB!emo.
!etoda Load(icture poate fi folosit pentru a afia ima%inea atunci cnd proprietatea
&utoDispla' este dezactiat ( )alse.
"roprietatea (icture permite accesul la ima%inea $n sine i funcioneaz la fel cum
funcioneaz pentru componenta 0ma%e standard.
"roprietatea Center determin ca ima%inea s fie centrat $n fereastra DB0ma%e.
"roprietatea )tretch determin posibilitatea de micorare a ima%ini pentru a se potrii
mrimii curente a ferestrei DB0ma%e sau dac se solicit afiarea la dimensiunea ei
ori%inal. Dac Stretc1 este dezactiat ( )alse ( o parte a ima%inii a fi tiat dac
ima%inea este prea mare pentru fereastra DB0ma%e.
"roprietatea *uickDra+ determin dac se a aplica o palet de culori ima%inii atunci
cnd este afiat. Cnd 3uic*Dra4 este actiat ( True ( nu se folosete nici o palet de
culori. Cnd este dezactiat, se folosete o palet pentru a afia ima%inea, ceea ce
determin o calitate mai bun, dar o performan puin mai mic la afiarea ima%inii.
Metodele componentei DB0ma%e includ Cut,oClipboard$ Cop',oClipboard i
(asteromClipboard- &ceste metode fac exact ceea ce spune i numele lor.
3.2.# COMPONENTA DBLISTBO$
Componenta DBListBox este, $n mare parte, o fereastr tip list standard. Ceea ce o
difereniaz de o astfel de fereastr este faptul c atunci cnd utilizatorul selecteaz un articol
din list, articolul selectat este scris $n cmpul corespunztor din irul de date. Componenta
DB5istBox afieaz coninutul unui cmp specificat din articolul actual al bazei de date, sub
forma unei liste simple. 6n acest scop se or seta proprietile Dataield i Items-
Specificarea cmpului se realizezaz prin proprietatea Dataield. Dac utilizatorul
selecteaz un element al listei, atunci elementul selectat deine aloarea curent a
cmpului. 5ista conine un numr de elemente, care reprezint alorile posibile ale
cmpului desemnate de proprietatea Data)ield.
..
7alorile afiate $n list sunt stabilite de proprietatea Items. &ceast proprietate are tipul
,)tringList +tabel de iruri de caractere,, deci $ncrcarea alorilor posibile se realizeaz
prin Editorul standard de iruri de caractere. Editorul poate fi lansat $n execuie prin
aplicarea unui clic pe butonul cu trei puncte, situat $n coloana de alori a proprietii
0tems. Este important s se realizeze c seriile din list nu in din baza de date +pentru
aceasta este DBLook.pListBox,.
3.2.% COMPONENTA DBCOMBOBO$
Componenta DBComboBox funcioneaz exact $n acelai mod ca i componenta
DB5istBox exceptnd diferenele clare $ntre o fereastr list i o fereastr combo box. &fieaz
coninutul unui cmp specificat, din articolul actual al bazei de date, sub forma unei liste
combinate.
Specificarea cmpului se realizezaz prin proprietatea Dataield. 7aloarea actual a
cmpului este indicat prin aloarea afiat $n linia de editare a listei combinate. Dac
aloarea actual nu apare $n list, atunci linia de editare este id. Dac utilizatorul
selecteaz un element al listei sau dac introduce o nou aloare $n lista de editare,
atunci aloarea selectat deine aloarea curent a cmpului.
5ista combinat conine un numr de elemente, care reprezint alorile posibile ale
cmpului desemnat de proprietatea Data)ield. 7alorile afiate $n lista combinat sunt
stabilite de proprietatea Items.
3.2.&' COMPONENTA DBC(EC)BO$
Componenta DBChecBox afieaz coninutul unui cmp specificat, din articolul actual
al bazei de date, sub forma unui buton de opiune.
Specificarea cmpului se realizeaz prin proprietatea Dataield. Coninutul cmpului
afiat poate fi modificat. Componenta este utilizat pentru izualizarea alorilor lo%ice.
Dac aloarea cmpului este ,rue, butonul de opiune este selectat i $n interiorul
butonului este afiat un caracter 8$9. Dac aloarea cmpului este alse, butonul de
opiune nu este selecat i interiorul butonului este id.
3.2.&& COMPONENTA DB*ADIO"*OUP
Componenta DB!adio"roup funcioneaz asemntor componentelor DB5istBox i
DBComboBox. &fieaz coninutul unui cmp specificat din articolul actual al bazei de date,
sub forma unui %rup de butoane radio.
Specifiacrea cmpului se realizeaz prin proprietatea Dataield. 7aloarea actual a
cmpului este indicat prin butonul de radio selectat din %rup. Etic1eta etaat butonului
selectat reprezint aloarea curent a cmpului. Dac aloarea actual nu apare, $n
mulimea etic1etelor %rupului de radio, atunci nici un buton de radio nu este selectat.
Dac utilizatorul selecteaz un buton de radio, atunci etic1eta butonului selectat deine
aloarea curent a cmpului.
.:
;rupul de radio conine un numr de butoane radio, ale cror etic1ete reprezint
alorile posibile ale cmpului desemnate de proprietatea Data)ield. Etic1etele afiate $n
%rupul de butone radio sunt stabilite de proprietatea Items.
"roprietatea /alues pstreaz aloarea curent a cmpului $n baza de date. Se a folosi
proprietatea 7alues pentru a sc1imba irul afiat $n fereastra de %rup radio cu un ir
diferit. De exemplu, se poate realiza o fereastr de %rup radio cu butoane radio
denumite 5uni, !ari i <oi. =ricum, baza de date poate stoca coduri precum 5, ! i <
$n loc de numele complete. Dat fiind acest scenariu, se a putea seta proprietatea 7alues
+o list de iruri, astfel#
L
M
<
6n acest caz, atunci cnd butonul radio este selectat, $n cmpul din baza de date a fi
scris codul coninut de litera selectat, $n loc s fie afiat irul butonului radio selectat.
Dac proprietatea 7alues este %oal, irul afiat al butonului radio a fi scris $n baza de
date atunci cnd este apsat butonul radio.
3.2.&2 COMPONENTELE DBLOO)UPLISTBO$ +I DBLOO)UPCOMBOBO$
Componenta DBLooupListBox permite s se afieze o list" de %alori de c0mpuri dintr-
un cmp cutat. Spre deosebire de componenta DB5oo*upComboBox, lista nu este dat de
pro%ramator> este dat de un ir separat de date.
Se seteaz proprietile Data)ource i Dataield $n irul de date i cmpul unde a fi
scris selecia de date.
Se seteaz proprietile List)ource i Listield pentru a %si cmpul din care trebuie
%enerat lista.
Componenta DBLooupComboBox funcioneaz exact ca DB5oo*up5istBox. 6n plus,
proprietile DropDo+nAlign$ DropDo+nRo+s i DropDo+n1idth controleaz modul $n care se
formeaz listele prin 8tra%ere9.
3.2.&3 COMPONENTA DB*IC(EDIT
Componenta DB!ichEdit permite s se a!ie&e i edite&e c0mpuri de tip memo rich text
$ntr-un ir de date. (roprietatea AutoDispla' i metoda LoadMemo funcioneaz exact cum
funcioneaz i pentru componenta DB!emo.
3.2.&, COMPONENTA DBCT*L"*ID
Componenta DBCtrl"rid permite s se cree&e componente tabelare rulabile
particulari&ate- Se poate plasa orice component de date $n prima celul a DBCtrl;rid +sau
orice alt component,, i Depl1i a multiplica aceast component pentru fiecare $nre%istrare
din irul de date.
.?
= ilustrare a@ut ca aceast explicaie s aib mai mult sens. )i%ura urmtoare arat o
form care conine o component DBCtrl;rid care a fost alineat astfel $nct umple aria de
client a formei. DBCtrl;rid conine o component DBEdit, DB!emo i DB0ma%e. Toate
componentele de date sunt plasate $n prima celul a tabelului. & doua celul conine un model
de 1aurare care spune c nu se poate plasa o component $n acea celul. & se edea exemplul
din )i% nr. :./ 8Crearea unei componente DBCtrlGrid9 i )i% nr. :.. 8Componenta
DBCtrlGrid 2n timpul rul"rii9.
ig nr- 3-4 Crearea unei componente DBCtrlGrid
ig nr- 3-5 Componenta DBCtrlGrid 2n timpul rul"rii
DBCtrl;rid are ctea propriet"#i care merit menionate#
"roprietatea 6rientation se a folosi pentru a determina dac trebuie plasat o bar de
deplasare i cum acioneaz componenta dac se apas pe bara de deplasare.
"roprietile (anel1idth i (anel7eight se folosesc pentru a stabili limea i $nlimea
celulelor din tabel.
"roprietatea Ro+Count determin cte $nre%istrri de afieaz odat.
Componenta DBCtrl;rid are un e#eniment$ 6n(aint(anel. &cest eeniment este
acionat de fiecare dat cnd o celul a tabelului trebuie pictat. Se poate rspunde la acest
eeniment, pentru a desena pe fundalul panelului. Desenarea se realizeaz numai pentru
fundalul panelului, restul de pe tabel or fi pictate automat.
3.2.&5 ALTE COMPONENTE DE DATE
DBChart este o component" de gra!ice inclus $n ersiunile "rofessional i
ClientASerer ale Delp1i. &ceast component nu este doar puternic, ci i complex.
.B
7ersiunea ClientASerer a Delp1i include Decision Cube, care conine $nc C
componente. &ceste componente permit s se fac o analiz de date complex cum ar fi
tabularea $ncruciat, tabele i %rafice piot i a%re%area datelor.
Tabelul urmtor centralizeaz componentele izuale cele mai utilizate $n %estiunea
bazelor de date, precum i proprietile care trebuie s fie iniializate cu o aloare $n perioada de
elaborare a proiectului sau $n execuie#
Tabelul nr :./ Co-.onente /isua0e 1e tre2uie ini3ia0i4ate
Co-.onent5 Pro.riet53i 1are tre2uie s5 6ie ini3ia0i4ate
DBGrid Data)ource
DB8a%igator Data)ource
DB,ext Data)ource Dataield
DBEdit Data)ource Dataield
DBMemo Data)ource Dataield
DBImage Data)ource Dataield
DBCheckBox Data)ource Dataield
DBListBox Data)ource Dataield Items
DBComboBox Data)ource Dataield Items
DBRadioGroup Data)ource Dataield Items
COMPONENTA "*OUPBO$
Componenta "rou.Bo7 +cutie de%rupare de tip T;roupBox, ete un container.
Componentele plasate $n interiorul ein or aparine aceluiai %rup. Datorit acestei caracteristici
ele or putea fi depl*sate simultan. 6ntre componenta ;roupBox i componentele plasate $n
interiorul ei se creaz o relaie de tip prite ( copil. &ceast component a fi folosit pentru
%ruparea lo%ic a diferitelor componente. Se %sete $n pat%ina standard a paletei de
componente i are simbolul %rafic . Du are proprieti i metode specifice.
"roprietatea Align a fi $ntlnit la toate componentele de tip %rup. &ceast propreitate
controleaz modul cum componenta este selectat relati la printele su. 7alorile
posibile pentru aceast proprietate i o descriere a fiecreia este dat $n tabelul de mai
@os#
Valoare Descriere
alBottom Aceast proprietate face alinierea n partea de jos a ferestrei printe.
alClient Componenta este extins pentru a umple ntreaga zon client a
ferestrei printe. Dac alte componente ocupau pri din aceast
zon componet GroupBox vor umple ceea ce a rmas. Exemplu
componetele memo! componentele de tip imagine "i componentele
#ic$Edit .
al%eft Componenta este aliniat la marginea din st&nga a ferestrei printe.
' (ar de unelte vertical este un exemplu n acest sens.
al)one Componenta este plasat fr a avea vreo relaie special cu
fereasta printele. Aceasta opiune este implicit pentru majoritatea
.C
Componenta ima%ine a fost plasat
la stn%a, iar componenta
;roupBox a ocupat restul formei,
dei s-a folosit opiunea a0C0ient8
pa%in plin.
componentelor.
al#ig$t Componeta este aliniat la marginea dreapt a ferestrei printe.
al*op Componenta este aliniat la partea de sus a ferestrei printe.
"roprietatea Caption a fi folosit pentru a sc1imba numele %rupului.
Vizualizarea articolelor din baza de date prin machet
= alt ariant de a izualiza articolele dintr-un tabel al bazei de date o constituie
aducerea acestora, cmp de cmp, $n csue de editare. 6n acest scop se or construi mac1ete,
alctuite din %rupuri de etic1ete i csue de editare, pentru toate cmpurile care se doresc a fi
izualizate. "entru ca forma s fie mai atracti, se a realiza mac1eta de cutare $ntr-un
;roupBox +cutie de %rupare,. Componenta GroupBox permite ataarea pe ea a altor componente
isuale sau non-isuale.
Cutarea $n fiier se a realiza prin bara de nai%are. "entru a simula un meniu de
cutare, $n baza de date, bara de nai%are se a fixa pe o component de tip container i anume
componenta (anel poziionat $n extremitatea de sus o form-ului.
De exemplu, consultarea fiierului Clienti, cu structura prezentat $n ig nr- 9)tructura
!iierului Clienti9 i izualizarea articolelor, prin intermediul unei mac1ete, presupune
parcur%erea mai multor etape de lucru dup cum urmeaz.
ig nr- )tructura !iierului Clienti
Eta.e 9e 0u1ru#
$% Din pa%ina &tandard a paletei de componente se selecteaz componenta 'anel. "rintr-un
clic* de mouse se fixeaz pe form. Se creaz o component de tip container care se a folosi
pentru a se crea pe ea bara de nai%are. 5a proprietatea Caption se a ter%e numele implicit
care a fost (anel4. "roprietatea Align se seteaz pe al,op. 6n urma acestei opetaii
componenta a ocupa partea superioar a formei.
(% Din pa%ina &tandard a paletei de componente se selecteaz componenta "roupBox +cutie
de %rupare, i se depune pe form, s-a creat astfel o cutie de %rupare $n care pot fi depuse alte
componente. "entru a i se atribui nume %rupului se selecteaz proprietatea Caption i se a
scrie numele acestuia +de exemplu 8Clienti9,. 6n colul din stn%a sus a apare scris numele
%ripului. Se a selecta proprietatea Align i se a seta pe alClient, cutia de %rupare a ocupa
$ntrea%a suprafa a formei, ramas dup plasarea panoului.
)% Din pa%ina DataControls se a selecta componenta DB*a#igator i de depune pe
componenta (anel de pe form. Se creaz $n felul acesta un panou format din mai multe
butoane de comand prin intermediul crora se poate nai%a printre articolele bazei de date.
"anoul poate fi complectat cu alte butoane de comand prin care pot fi inserate $n baz
articole noi, pot fi terse articole sau se poate edita coninutul unor articole. "entru a fi
.E
acti, bara de nai%are se cupleaz la sursa de date, setndu-i proprietatea Data)ource pe
Data)ource4 +ulterior dup ce s-a inserat DataSource pe )orm,.
+% Se or duce pe form cele trei componente nono-isuale necesare conectrii la baza de date
i anume#
,DOConnection se aduce din pa%ina ,DO cu scopul de a realiza conectarea la baza de
date. Se execut dublu clic* pe el, $n fereastra )ource o! Connection se actieaz
butonul Build care desc1ide fereasra de le%tur spre baza de date. Din fereastra Data
Link (roperties pe opiunea (ro%ider se a selecta Microso!t :et ;$< 6LE DB (ro%ider
indicndu-se faptul c se dorete desc1iderea unei baze de date creat in &ccess. "e
opiunea Connection se a selecta baza de date i se a executa textul de conectare
corect.
Din pa%ina Data ,ccess se aduce pe form componenta Data&ource and rolul de a
realiza le%tura $ntre componenta inizibil -able i componentele izibile de acces
spre baza de date+de exemplu DBEdit.%
Tot din pa%ina ,DO se aduce pe form componenta ,DO-able cu rolul de a trimite
datele, ce se transmit prin intermediul componentei Data&ource: spre componentele
izibile de acces la baza de date.
/% "entru componenta Data&ource se seteaz proprietatea Data)et pe AD6,ale4.
0% "entru componenta ,DO-able din proprietatea ,able8ame se selecteaz fiierul de lucru
executndu-se dublu clic pe s%eata din coloana alorii a acestei proprieti +de exemplu
fiierul Clien#i,. "roprietatea ,ableDirect se seteaz pe ,rue: proprietatea Connection pe
AD6Connection4 iar proprietatea Acti%e pe ,rue.
1% 6n interiorul cutiei de %rupare se plaseaz perec1i de etic1ete i csue de editare. Etic1etele
se aduc din pa%ina &tandard prin Label i se folosesc pentru a se afia texte statice.
2% Csuele de editare se aduc din pa%ina Data Controls prin DBEdit: component de tip linie
de editare prin care se poate afia i edita coninutul unui cmp al articolului curent. 7or fi
numerotate DBEdit4, DBEdit5 .a.m.d.
3% "entru fiecare Label la proprietatea Caption se a scrie textul ce trebuie afiat +de exemplu
Cod Client,.
$4% "entru fiecare component DBEdit se a seta proprietatea Data)ource pe Data)ource4: iar
prin intermediul proprietii Dataield se a selecta cmpul, din tabel a crui aloare a fi
editat, $n respectia csu de editare +ig nr- 3-44 Cuplarea c"su#elor de editare la un
anumit c0mp al ba&ei de date=-
)orm Desi%ner-ul de izualizare articole prin mac1et#
.F
ig nr- Cuplarea c"su#elor de editare la un anumit c0mp al ba&ei de date
$$% "e form se pot plasa i butoane +de exemplu Butonul ce a fi denumit Exit and rolul de a
se reeni la )orm Desi%ner din execuia pro%ramului,. "entru acest buton $n codul pro%ram
se scrie#
A..0i1ation.Ter-inate;
$(% Se saleaz unit-ul +<i0e= &a#e ,s.$ proiectul +<i0e=&a#e 'ro5ect ,s, i se lanseaz $n
execuie +!un6!un,. Dup lansarea $n execuie form-ul creat se prezint conform ig nr- >
C"utare i %i&uali&are articole prin machet"?-
Execuia#
ig nr- - C"utare i %i&uali&are articole prin machet"
.G
ntrebri i rspunsuri
6# Exist o limit a numrului componentelor DataSource, Table i 3uer' pe care le pot aea pe
o formH
I# Du exist nici o limit, c1iar dac exist nite limite practice pentru numrul de iruri de date
cu care poi lucra la un moment dat.
6# Trebuie s folosesc un DBDai%ator pentru a permite utilizatorilor mei s nai%1eze prin baza
de dateH
I# Du, ai putea pune propriile tale butoane i apoi s scrii cod pentru a muta cursorul bazei de
date atunci cnd butonul este apsat. )olosind DBDai%ator este totui mult mai simplu.
Chestionar
+. Care este cel mai rapid "i mai u"or mod de a crea forme de (aze de date,
.. Cum controlai ordinea i numrul coloanelor care apar $ntr-o component DB;ridH
:. Care component permite s afiai irul de date $n format tabelH
?. Cum putei adu%a sau $nltura butoane $n DBDai%atorH
B. Care ste proprietatea comun a tuturor componentelor de prezen a datelorH
C. Ce proprietate este folosit pentru a selecta cmpul de care este le%at o component de
dateH
E. "utei rearan@a coloanele $ntr-o component DB;ridH
Exerciii
+. Creai o nou aplicaie care afi"eaz coninutul ta(elului -E)D'#..DB /din
(aza de date DBDE0'.1.
.. !odificai aplicaia $n pasul / astfel $nct numai cmpurile urmtoare s fie afiate#
7endorDame +distribuitor,, Cit' +ora,, State +stat, i "1one +telefon,.
:. Deintorii de Depl1i "rofessional i ClientASerer# creai o form masterAdetaliu din
baza de date 0B5=C&5 +instalai 5ocal0nterBase de pe CD-ul Delp1i dac este
necesar,. )olosii tabelul E!"5=JEE ca i master i tabelul E!"5=JEEK"I=<ECT
ca i detaliu. +Sfat# )olosii cmpul E!"KD= pentru a le%a cele dou tabele,.
?. Creai o form de baze de date care folosete o component DBCtrl;rid pentru a nei%a
prin tabel. )olosii orice tabel i includei orice cmp dorii.
B. Creai manual o form de baze de date +fr s folosii Database )orm Lizard, folosind
orice tabel i incluznd orice cmp dorii. &du%ai o component DBDai%ator pentru
a nai%a prin tabel.
:M
C. 6nlturai toate butoanele din DBDai%ator folosit la pasul B, exceptnd butoanele )irst
+primul,, Dext +urmtorul,, "rior +precedentul, i 5ast +ultimul,.
:/

S-ar putea să vă placă și