Sunteți pe pagina 1din 3

Colegiul de Informatic din Chiinu

Catedra Cibernetica si Informatica

Referat
Tema: Clasele non-vizuale in Vizual Fox Pro

Elaborat :

Coordonator:

Clase vizuale i non-vizuale


Unul dintre cele mai bune instrumente din Visual FoxPro este Class Designer. El
permite crearea claselor vizual, nu prin scrierea unor cantiti uriae de cod. Desigur, putei s nu
folosii Class Designer. ntotdeauna putei defini clasele n cod; procednd astfel, avei cteva
avantaje.
Avantajele claselor non-vizuale
S examinm avantajele claselor definite n cod surs. n primul rnd, par s fie puin
mai rapide. Conform msurtorilor mele, clasele care sunt stocate n .PRG-uri se instaniaz cam
de dou ori mai repede dect clasele stocate n biblioteci .VCX. Acest lucru variaz funcie de
scenariul curent, dar se pare c clasele definite n cod surs sunt mult mai rapide, mai ales la
prima instaniere. Dup prima instaniere a unei clase, FoxPro o scrie n memoria cache i viteza
devine egal.
Viteza de instaniere este diferit din cauza modului n care sunt stocate clasele.
Fiierele .VCX sunt pur i simplu tabele .DVF cu extensie diferit. La instanierea unei clase,
FoxPro scaneaz tabela, caut codul compilat care este stocat mpreun cu tabela i verific
existena posibilelor clase printe. Dac este gsit vreo clas printe, trebuie analizat i ea.
Clasele stocate n fiiere .PRG sunt doar un singur secven de cod compilat i Visual FoxPro
nu trebuie s fac SEEK-uri pentru a determina clasele i informaiile referitoare la motenirea
unor eventuale clase printe.
Un alt factor care trebuie luat n considerare este dimensiunea fiierelor. Cu ct clasa
este mai mare, cu att diferenele se estompeaz. Motivul este simplu: cu ct clasa este mai mare,
cu att dureaz mai mult instanierea sa. Dac instanierea dureaz 50 de milisecunde, faptul c
n cazul clasei stocat ntr-un .VCX cutarea a durat 3 milisecunde i n cazul clasei stocat n
.PRG a durat numai 1 milisecund nu mai conteaz. Dar dac instanierea dureaz 1 milisecund,
timpul suplimentar datorat cutrilor nseamn mult.
Un alt aspect este dimensiunea. Bibliotecile de clase vizuale au tendina de a deveni
uriae, pentru c ori de cte ori sunt modificate, FoxPro terge vechea versiune a clasei i o
adaug din nou la sfritul fiierului. De asemenea, o tabel cu fiiere memo este ntotdeauna
puin mai mare dect un fiier text. Clasele definite n cod surs, pe de alt parte, sunt extrem de
compacte. Mai mult dect att, coruperea fiierelor este extrem de rar, dat fiind faptul c ele
sunt simple fiiere text. Fiierele .VCX sunt mai fragile i par s fie mai predispuse la corupere.
Avantajul final este uurina n redenumire a claselor, proprietilor i metodelor, i
uurina n redenumire a structurilor de clase. Totodat, acest avantaj se poate transforma ntr-un
dezavantaj deoarece redenumirea i redefinirea pot induce alte probleme.
Dac folosii clasele non-vizuale, suntei pe cont propriu. Clasele non-vizuale pot fi o
mare aglomerare de cod, fr nici o ordine. Proprietile i metodele sunt mprtiate n tot
fiierul, posibil chiar n mai multe fiiere, i nu exist nici o metod de al vedea pe toate
simultan. Din acest motiv este uor s uitai de ele, sau chiar s le redefinii accidental, deoarece
nu exist nici un mecanism integrat care s v avertizeze asupra unor posibile probleme. Acest
lucru este i mai periculos dac folosii evenimente predefinite. n fereastra de proprieti este
suficient s alegei unul dintre evenimentele disponibile i s scriei codul n el. Dac folosii cod
surs, nu mai este att de uor. Va trebui s inei minte numele evenimentelor fiecrei clase i de
unde este derivat fiecare dintre ele. Altfel, va trebui s cutai aceste informaii, operaiune mare
consumatoare de timp.

Unele clase sunt doar non-vizuale


Din pcate, nu toate clasele sunt disponibile n Class Designer. Unele dintre ele
sunt Pages (nu PageFrames), GridColumns i Headers. Cu toate acestea, le putei subclasa n
cod surs.Multe dintre clasele care nu pot fi modificate vizual sunt containere specializate care
pot exista numai n anumite alte containere. Paginile, de exemplu, (clasa Pages) pot exista numai
n PageFrames iColumns pot exista numai n clase Grid. n acelai timp, aproape orice tip de
obiect poate fi membru al acestor clase. De obicei modificai clasele container n Class Designer
i setai proprietile pentru a instaia obiectele membru specializate. n Grid, de exemplu, putei
seta proprietatea ColumnCount i FoxPro va aduga coloane noi instantaneu. Cu toate acestea,
coloanele nou adugate sunt din clasa de baz FoxProColumn i nu pot fi definite de
programator. Dac dorii s adugai propria dvs. clas Column, va trebui s o definii n cod
surs, s setai proprietatea ColumnCount la zero i s adugai coloanele n timpul execuiei
programului, folosind metoda AddObject(). Coloanele trebuie s conin obiecte membru, i din
acest motiv i obiectele membru trebuie instaniate sau definite n cod surs. Nu conteaz cum
facei acest lucru, pentru c oricum vei pierde avantajele oferite de instrumentele vizuale de
proiectare.

Crearea unui set propriu de clase de baz


Folosirea claselor de baz Visual FoxPro trebuie evitat cu orice pre. Ar trebui s
subclasai fiecare clas de baz nainte de instaniere sau nainte de folosirea ei n Form
Designer. Acest lucru mbuntete foarte mult flexibilitatea proiectului. ntotdeauna v putei
ntoarce napoi, putei modifica cteva proprieti, putei modifica comportamentul sau putei
aduga noi metode. Este foarte important s procedai astfel mai ales la nceputul lucrului cu
Visual FoxPro, pentru c proiectul va fi mai uor de ntreinut -- ntotdeauna v putei ntoarce
napoi i corecta erorile pe care le-ai fcut n cursul proiectrii.
Crearea unui set propriu de clase ofer posibilitatea de a face modificri n ntreaga
aplicaie n timpi de ordinul minutelor. Primul nivel al acestor subclase este referit de obicei ca
propriul set de clase de baz. Dup ce l creai, practic putei s uitai de clasele de baz din
Visual FoxPro. Din pcate, nu exist nici o metod s determinai Visual FoxPro s afieze
aceste clase n locul celor implicite. Din acest motiv exist riscul s folosii din greeal setul
intern de clase de baz, ceea ce ar putea duce la bug-uri greu de depistat.
Din fericire, exist cteva instrumente care verific bibliotecile de clase i foreaz
folosirea unei anumite clase de baz. Unul dintre aceste instrumente este PowerBrowser. El este
livrat mpreun cu civa asisteni care pot seta tot felul de aspecte privitoare la clasele de baz.
Acest instrument este freeware

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