Visual Foxpro 0 abc-doar


Pentru a putea vizualiza elementele programului,utilizati butonul Step



Yüklə 1,41 Mb.
səhifə11/17
tarix17.03.2018
ölçüsü1,41 Mb.
#45490
1   ...   7   8   9   10   11   12   13   14   ...   17

Pentru a putea vizualiza elementele programului,utilizati butonul Step

Into daca doriti sa va deplasati in program pasa cu pas,sau Step Out,daca

doriti sa avansati mai rapid.Apoi apasati butonul Locals Window si obser-

vati ce elemente sunt vizibile in program in momentul respectiv si ce

valoare de moment este atribuita elementului respectiv.

EXEMPLU: din meniul Tools alegeti Debugger,apoi din File alegeti Open

si deschideti fila Samples/Tastrade/Progs/Main.prg

Apoi apasati butonul Step Out.Se va deschide automat fereastra de salut

a programului Tasmanian Traders.Cautati in bara de jos a programului Win-

dows fila Visual Foxpro Debugger si redeschideti fila cu un click.Obser-

vati ca programul a fost derulat pana aproape de sfarsit.Apasati butonul

Locals Window si se va deschide fereastra Locals:

fereastra contine o serie de variabile si directorul "loform" cu un

semn + in indicatorul de nod.Executati un click pe semnul plus.

Loform este un obiect complex.Explorati in continuare ce contine acest

obiect,cum sunt compartimentate datele,ce tip au si ce valoare,etc.

Fereastra Locals este un instrument complex,care va permite o vedere de

ansablu a programului,modulului sau obiectului investigat.Aceasta fereas-

tra nu este indicata pentru a corecta erorile de sintaxa,ci mai degraba

este utila pentru a putea identifica greselile de conceptie (Exemplu: doua

sau mai multe variabile declarate PUBLIC,returneaza valori care se anulea-

za reciproc,sau se face apel la o variabila declarata LOCAL,care nu are

vizibilitate in mediul de operare al procedurii respective,etc.).


-67-

PROJECT MANAGER -fereastra Project Manager este un instrument conceput

pentru a facilita organizarea filelor sub forma de proiecte.Practic,reali-

zeaza o interfata vizuala intre mediul de programare si programator.Cu

ajutorul acestui instrument,programatorul poate structura filele,docu-

mentele si tabelele de date astfel incat sa poata fi salvate intr-o sin-

gura fila cu extensia .PJX.Pentru a modifica un proiect,este suficient sa

deschideti fila cu extensia .PJX in fereastra Project Manager.

In fereastra Project Manager,elementele proiectului sunt grupate cu

ajutorul unui meniu in: Data,Documents,Classes,Code,Other si All(toate).

Pentru a lucra doar cu un anumit fel de elemente alegeti meniul corespun-

zator.Elementele sunt grupate sub forma de arbore de directoare.Daca un

director contine file auxiliare,punctul de nod va fi simbolizat cu un

semn plus.Executati un click de mouse pe semnul "+" pentru a vedea ce

contine directorul respectiv.Fereastra poate fi redusa si la o bara de

meniu,cu ajutorul butonului cu sageata.

In functie de elementele din proiect,fereastra afiseaza si urmatoarele

butoane de comenzi: New,Add,Modify,Browse,Close,Open,Remove,Build,Preview

si Run.Fiecare buton executa comanda inscrisa,asupra filei selectate.

Fereastra Project Manager a fost exemplificata destul de explicit in

paginile anterioare (vezi elementele unui proiect).
PROPERTIES - fereastra Properties se poate utiliza pentru elemente de tip

form (fereastra),data enviroment (mediul de memorie),cursor,relation (re-

latia dintre doua tabele) sau control (obiect).Fereastra properties reali-

zeaza o interfata vizuala in care programatorul poate seta sau redefini o

proprietate,o metoda sau un eveniment.Toate aceste operatii se pot efectua

si programatic,cu ajutorul unor comenzi organizate sub forma de linii de

cod,dar fereastra Properties ofera avantajul unei vederi de ansamblu a

tuturor proprietatilor,metodelor si evenimentelor elementului respectiv.

In fereastra apar si proprietatile sau metodele asupra carora nu se vor

efectua modificari.Fereastra se poate utiliza si pentru a vedea daca mai

multe elemente au proprietati comune.Pentru acest scop se vor selecta si-

multan mai multe obiecte (fereastra va afisa doar proprietatile comune).

Fereastra Properties se poate deschide din meniul short-cut afisat la

un click drept de mouse pe elementul interesat.In fereastra se disting

urmatoarele componente: o caseta de dialog in care se afiseaza elementul

selectat,un meniu cu urmatoarele optiuni: All,Data,Methods,Layout,Other,

o caseta de dialog pentru setarea sau actualizarea datelor si o lista

completa a proprietatilor fiecarui element.Caseta de dialog utilizata

pentru editare are la randul sau patru butoane: un buton cu un semn x,

utilizat pentru a anula o setare gresita,un buton cu o pipa,care confirma

setarea sau actualizarea efectuata,un buton cu simbolul "fx" pentru edi-

tarea unor expresii formate din elemente standard,si un buton cu trei

puncte ce poate fi utilizat pentru navigare (pentru a seta calea de acces

la o anumita fila).

Fereastra Properties nu poate fi utilizata decat pentru setarea unor

proprietati in etapa de design a proiectului.Valorile setate vor fi actu-

ale in momentul in care incepe executia programului.Pentru a schimba pro-

prietatile in timpul executiei,este necesar sa utilizati comenzi si linii

de cod (intr-o fila program,sau intr-un eveniment al unui obiect,etc.).

Fereastra Properties este asemanatoare cu Object Inspector din Delphi.


-68-

TRACE -fereastra Trace Window este instrumentul standard pentru depa-

narea asistata si rapida a unui program.Este inclusa in fereastra Debugger

si este fereastra implicita a acestui instrument.Se utilizeaza pentru a

deschide o fila de tip program si a urmari liniile de cod in timpul exe-

cutiei programului.Cu ajutorul acestei ferestre,se poate localiza o even-

tuala eroare,sau se poate estima modul de lucru al programului,la nivel

de cod.In fereastra Trace se pot evalua si eventualele "optimizari" sau

solutii tehnice la nivel de cod.

Pentru ca fereastra sa fie cu adevarat utila,este necesar ca executia

programului sa poata fi intrerupta in anumite puncte,pentru ca programa-

torul sa poata evalua situatia de moment.Pentru acest scop,se vor fixa

un numar oarecare de "nivele de intrerupere",apoi programul va fi execu-

tat fragmentat,de la un nivel de intrerupere la urmatorul.In fiecare

punct in care programul a fost intrerupt se vor evalua valorile dorite,

pana cand se identifica fragmentul in care a intervenit eventuala eroare.

Apoi,fragmentul respectiv va fi verificat linie cu linie,pana cand se

identifica locatia exacta a erorii.Pentru a realiza astfel de nivele de

intrerupere,se pot utiliza mai multe procedee tehnice.O varianta este sa

alegeti din meniul Tools,optiunea Breakpoints si sa fixti un anumit numar

de linii din program unde doriti sa opriti executia.

EXEMPLU : pentru a opri executia dupa afisarea unei ferestre:

in fereastra Breakpoints introduceti in caseta Location linia de cod:

frmMyFrame.Show

si in caseta File numele programului in care se gaseste linia de cod:

C:\vfp\exemple\clasamea.prg (utilizati butonul cu trei puncte)

Apoi apasati butonul ADD.

In caseta Breakpoints va aparea nivelul de intrerupere:

at "frmMyFrame.show{clasamea.prg}"

Fiecare nivel de intrerupere are si o caseta checkpoint in care puteti

bifa daca doriti ca nivelul de intrerupere sa fie activ sau pasiv.

In continuare executati programul cu Step Out.

O modalitate mai simpla este sa deplasati direct cursorul la pozitia la

care doriti sa intrerupeti executia programului si sa utilizati butonul

Run to cursor.Executia se va opri automat la pozitia cursorului iar in

caseta Breakpoints se va adauga automat nivelul de intrerupere respectiv.

In continuare puteti utiliza nivelul de intrerupere si cu Step Out,ori

de cate ori reincarcati programul.Pentru a elimina un nivel de intrerupere

utilizati butonul Remove din fereastra Breakpoints,iar pentru a pastra

nivelul de intrerupere,dar inactiv,utilizati butonul Disable.Ulterior,se

va putea reactiva un nivel de intrerupere cu butonul Enable.

Dupa ce eroarea a fost localizata la un grup de coduri,puteti utiliza

butonul Step Into,pentru a naviga linie cu linie,pana cand depistati eroa-

rea.La orice nivel de executie,nu ezitati sa deschideti si celelalte fe-

restre de depanare: Locals,Call Stack sau Output si Watch,pentru a putea

avea o imagine de ansamblu a modului de executie.

Daca doriti sa urmariti executarea programului "cu incetinitorul",ale-

geti din meniul Debug optiunea Throttle si setati un timp oarecare de

intarziere per operatie.In continuare,dupa fiecare operatie executata,se

va introduce si o pauza cu durata de timp respectiva.In programele mari,

nu este practic sa executati codul linie cu linie,sau sa introduceti timpi

de intarziere,deoarece depanarea se va extinde pe durate extrem de lungi.


-69-

Programele mari au sute si mii de linii de cod.Pentru a simplifica

operatiile de depanare a unui estfel de program,este bine ca programul sa

fie fragmentat in mai multe module executabile.In acest caz,identificati

modulul care contine eroarea,apoi procedati ca mai sus.Daca programul nu

este fragmentat in module exista doua solutii:

1. -procedati intuitiv.Analizati care este segmentul cel mai probabil

sa contina eroarea si fixati cateva nivele de intrerupere in acel segment

de cod.Daca nu identificati eroarea,verificati urmatorul segment in ordi-

nea probabila.

2. -impartiti programul in cateva segmente mari de cod,cu ajutorul

unor nivele de intrerupere.Identificati segmentul care contine eroarea si

subimpartiti segmentul in fragmente mai mici.Repetati operatia pana cand

localizati eroarea,apoi analizati codul linie cu linie cu Step Into.

Exista si o serie intreaga de programe de analiza si depanare,care

pot efectua toate aceste operatii automat.Acest gen de programe sunt

foarte utile pentru a depista si corecta o eroare de format,o eroare de

calcul sau o eroare de executie.Nici un program nu poate depista insa

erorile de conceptie,atunci cand acestea au respectat toate normele de

limbaj.

Meniul Tools mai contine inca doua optiuni.Event Tracking deschide o

fereastra de dialog in care puteti selecta ce evenimente doriti sa fie

evaluate in timpul executiei.Sistemul Windows functioneaza pe baza de

mesaje.Pentru fiecare eveniment din mediul Windows se elibereaza un mesaj

specific.Pentru ca mesajul respectiv sa aiba semnificatie intr-un program

trebuie sa existe si o bucla de repetitie,in care aceste mesaje sunt re-

ceptionate,analizate si comparate,apoi sunt utilizate pentru a declansa o

anumita operatie de raspuns la evenimentul respectiv.Fereastra Events

Tracking nu face de cat sa seteze o astfel de lista de comparatie.Toate

evenimentele incluse in lista vor fi urmarite cu ajutorul mesajului Win-

dows corespunzator.Cea de a doua optiune,Coverage Logging se utilizeaza

pentru a deschide fereastra de dialog Coverage Dialog Box,care permite sa

specificati optiunile de executie a programului (logging).Cu ajutorul

acestei ferestre se pot obtine informatii despre liniile de cod executate:

de cate ori a fost executata o linie de cod,ce linii de cod nu au fost

executate niciodata in program,cat a durat executia,etc.Datele vor fi

salvate intr-o fila cu extensia .LOG.

EXEMPLU : deschideti un program oarecare in Trace

alegeti din Tools Coverage Logging si specificati o fila oarecare,de

exemplu filalog.log,apoi confiramti cu OK.

Executati programul cu Step Out,apoi utilizati meniul File pentru a des-

chide fila filalog.log si a evalua operatiile matcate.Fila va contine

durata executiei,obiectul si adresa de memorie a filei sursa pentru fie-

care linie de cod pusa in executie.

Toate optiunile ferestrei Debugger se pot executa fie din meniurile

Debug,Tools,Window sau File,fie cu ajutorul butoanelor specializate din

bara de instrumente.

Nu exista reguli fixe pentru modul de a depana un program.Procedeele

tehnice depind de natura programului,dar si de creativitatea programatoru-

lui.Un singur sfat,pare sa fie totusi util:-nu va lansati la operatii si

strategii extrem de complicate.Solutia corecta este intotdeauna simpla.

Daca nu reusiti din prima incercare,incercati din nou dupa un anumit timp.


-70-

WATCH - fereastra Watch este inclusa in fereastra Debugger si se poate

utiliza pentru crearea sau depanarea unui program.Fereastra este special

conceputa pentru a putea evalua rezultatul unei expresii,sau pentru a

fixa un numar de nivele de intrerupere in timpul evaluarii unei expresii

complexe care realizeaza un calcul secvential sau utilizeaza o bucla de

repetitie.In cazul calculelor secventiale,fereastra WATCH permite identi-

ficarea operatiei care genereaza eroarea (Exemplu: in cadrul unui calcul

secvential,o anumita operatie returneaza o valoare situata in afara dome-

niului de definitie a variabilei respective).

Fereastra Watch este compusa dintr-o caseta de dialog,in care se vor

introduce expresiile ce urmeaza sa fie evaluate,si un camp de date in care

se va afisa rezultatul evaluarii sub forma :

Nume(Name).... Valoare(Value)... Tip de data(Type)

Fereastra se poate utiliza atat pentru a evalua expresii izolate,cat si

pentru a evalua o expresie oarecare inclusa intr-un program.

Pentru a deschide fereastra Watch se poate utiliza o comanda de genul:

ACTIVATE WINDOW WATCH declarata in fereastra de comenzi,sau se poate alege

din meniul Tools optiunea Debugger,apoi se apasa butonul Watch Window sau

se alege optiunea Watch din meniul Window.

EXEMPLU:

pentru a evalua o expresie izolata,deschideti fereastra Watch si apoi

introduceti in caseta de editare expresia dorita:

DATE()

TIME()

SYS(2)

1234+77/33

VAL(STR(3.14)) etc.

Dupa fiecare expresie apasati tasta ENTER.Daca expresia poate fi evaluata,

se va afisa numele,valoarea si tipul de data.Daca expresia este editata

gresit,sau nu poate fi evaluata,se va afisa textul: "Expresion could not

be evaluated".

Fereastra contine un meniu short-cut,ce poate fi activat cu un click

drept de mouse.Meniul contine urmatoarele optiuni:Insert Watch (adauga o

evaluare),Delete Watch(sterge o evaluare),Docking View(permite pastrarea

valorilor returnate),Hide(ascunde),Font(seteaza fonturile) si Help.

Pentru a evalua o expresie oarecare in cursul executiei unui program,

deschideti programul cu Open din meniul File,apoi editati si confirmati

expresia pe care doriti sa o evaluati si executati programul cu Step Out.

Expresia va fi evaluata doar in punctele in care s-a fixat un nivel oare-

care de intrerupere.Daca programul nu are nivele de intrerupere,se va

afisa doar rezultatul final(daca Docking View este bifata).

Daca programul contine o bucla de genul :

FOR x=1 to 10

y= x*x*3.14

ENDFOR

puteti evalua valorile pentru x si y doar dupa ce programul a executat

primul pas din bucla (altfel x si y sunt nedefinite si expresia nu poate

fi evaluata).Pentru a evalua valoarea lui x si y utilizati un nivel de

intrerupere la nivelul buclei,apoi utilizati butonul Step In pentru a

executa bucla pas cu pas,deschideti ferestra Watch si evaluati valoarea

lui x si y (variabila evaluata trebuie sa fie prezenta in memorie).


-71- WIZARDS
Wizards sunt o serie de mici programe,denumite programe "vrajitor" si

au fost concepute pentru a simplifica la maximum operatiile necesare

pentru crearea unor elemente din program.Cu ajutorul acestor programe vra-

jitor se pot crea ferestre specializate sau personalizate,rapoarte si

selectii complexe din tabele si baze de date,grafice si etichete sau chiar

file de tip HTML care permit accesul utilizatorilor de Web la datele

dintr-un tabel oarecare.

Pentru crearea unui astfel de obiect se poate utiliza fie un designer,

fie o secventa de linii de cod,in care se declara clasa,apoi se creaza o

instanta a clasei respective,se seteaza fiecare proprietate si metoda sau

eveniment etc.Programul vrajitor face toate aceste operatii automat,iar

pentru selectia sau setarea proprietatilor obiectului exploatat utilizeaza

o interfata grafica,in care programatorul nu trebuie sa introduca nici o

singura linie de cod.Toate operatiile necesare se pot executa cu un simplu

click de mouse.Practic se pot crea obiecte,sau chiar programe functionale

si de catre persoanele care nu detin notiuni elementare de programare.

Aceste programe vrajitor au limitele lor.Nu se pot crea decat obiecte

standard si nu se pot exploata decat proprietatile si metodele incluse in

wizard.Totusi,aceste programe au o serie de avantaje majore: sunt simple

si rapide,sunt foarte usor de utilizat,creaza obiecte sigure,care nu vor

crea probleme de "intretinere" sau "depanare",acopera sfera problemelor

esentiale ale unui program si pot fi reproduse usor,ori de cate ori este

necesar.

Toate programele wizard au la baza o interfata grafica formata din

butoane si casete de dialog,in care utilizatorul nu trebuie decat sa

introduca optiunea dorita,sau sa aleaga una dintre variantele prestabilite

(uneori se utilizeaza si butoane de navigare).Fiecare wizard este format

din cateva etape succesive.Se pot completa toate aceste etape,sau se poate

trece direct la etapa finala,apasand butonul "Finish" (daca se sare peste

etape,metodele si proprietatile vor ramane nedefinite).

Pentru a utiliza un astfel de program vrajitor exista mai multe puncte

de plecare.Din meniul Tools,selectati optiunea Wizards si apoi alegeti

tipul de wizard dorit,sau daca nu este inclus in lista,alegeti optiunea

All si apoi utilizati fereastra Wizard Selection pentru a selecta tipul

dorit.O alta varianta este sa utilizati optiunea New din meniul File,sa

alegeti tipul de element dorit si apoi sa apasati butonul Wizard.Pentru

a putea lansa in executie un wizard cu ajutorul unei linii de cod,se

poate introduce in fereastra de comenzi,sau intr-un program oarecare o

comanda de genul: DO wizard.app

care va deschide fereastra de selectie Wizard Selection sau se va putea

executa direct programul vrajitor dorit utilizand numele programului dorit

(programele wizard sunt arhivate in directorul Wizards).

EXEMPLU: DO Wzform.app

va deschide programul vrajitor de creere a ferestrelor

Aceste programe vrajitor au fost concepute pentru a fi utilizate.Nu va

retineti de la utilizarea lor,doar pentru ca sa pareti un programator mai

"avansat" sau "profesionist".Sunt simple,clare si sigure.Are rost sa pre-

ferati un desginer,sau chiar o secventa de linii de cod,doar atunci cand

obiectul dorit nu poate fi creat cu ajutorul unui Wizard.Programele Wizard

nu sunt doar pentru incepatori,ci sunt un instrument de lucru.


-72- APPLICATION WIZARD
APPLICATION WIZARD - este programul vrajitor ce poate fi utilizat

pentru a realiza o aplicatie completa,formata din fila proiect,tabele si

baze de date,rapoarte,biblioteci de clase etc.

Acest wizard poate fi utilizat in mai multe moduri.Primul tip de uti-

lizare este in situatia in care incepeti un program oarecare,dar nu aveti

nici un element creat anterior si nici nu stiti exact cum va arata progra-

mul final.In acest caz,application wizard va crea doar scheletul aplica-

tiei si principalele module ale programului.Pentru acest scop se vor crea

automat doua ferestre specializate(About.scx si QckStart.scx),un antet de

program care va lansa in executie fereastra QckStart,un meniu standard,

Yüklə 1,41 Mb.

Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   ...   17




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