Visual Basic 0 abc-doar


particularitati de management al memoriei etc.).Reciproc,atunci cand



Yüklə 0,98 Mb.
səhifə10/10
tarix03.11.2017
ölçüsü0,98 Mb.
#29921
1   2   3   4   5   6   7   8   9   10
particularitati de management al memoriei etc.).Reciproc,atunci cand

creati si distribuiti astfel de clase,este bine sa le insotiti si cu un

set de explicatii complete,pe langa codul sursa fara nici o conversie.

In majoritatea situatiilor se vor prefera obiectele inglobate in pro-

gram,fata de cele conectate,cu exceptia situatiilor in care datele explo-

atate sunt si trebuie sa fie partajate,in retea,cu alti utilizatori.

Un container OLE nu poate sa contina decat un singur obiect inglobat si

nu poate executa operatii de sortare sau reordonare.


-78-

CONTROALELE SI OBIECTELE ACTIVEX

ActiveX este un set de tehnologii prin care componentele software ale

unui program pot interactiona cu alte componente software din retea,indi-

ferent de limbajul in care au fost editate.Tehnologia ActiveX are la baza

modelul COM (Component Object Model).COM este un sistem destinat pentru

realizarea de interactiuni software in limbaj binar,cu alte cuvinte este

standardul binar pentru componentele ce interactioneaza.Practic,indiferent

de limbajul in care au fost scrise,componentele vor fi convertite in cod

binar si respectiv in cod masina.Interactiunea dintre obiecte va avea loc

la acest nivel (adica in cod masina),dupa care datele rezultate vor fi

convertite din nou spre obiectul de destinatie.Singura conditie pentru ca

un limbaj sa poata crea componente de tip COM,este ca limbajul respectiv

sa permita crearea de structuri de pointeri si respectiv sa poata utiliza

acesti pointeri pentru a apela functiile din program.

Limbajele cele mai adecvate sunt cele orientate spre obiect,dar se pot

crea componente de tip COM si in limbajele simple ca: Pascal,Ada,Java,C,

sau Basic.In general,un obiect este format dintr-un set de date si o serie

de functii pentru prelucrarea acestor date.In particular,un obiect de tip

COM este un obiect in care accesul la date nu se poate face decat prin

intermediul unor functii specializate.Acest set de functii,poarta numele

de interfata,iar functiile pentru prelucrarea datelor din interfata poarta

numele de metode.Accesul la metode se poate face doar prin intermediul

unor pointeri.Obiectele de tip COM au fost dezvoltate din conceptul OLE

(Object Linking and Embedding) si se caracterizeaza prin faptul ca accesul

la date nu se poate face decat indirect.

Pentru a putea utiliza componente de tip COM,este necesara prezenta

unei biblioteci speciale,denumita COM Library.Aceasta biblioteca include

un set DLL-uri si file esentiale (OLE32.DLL,RPCSS.EXE etc.).

Obiectele de tip ActiveX sunt instante ale unor clase de tip ActiveX.

Clasele de tip ActiveX va permit urmatoarele facilitati:

-puteti sa creati componente ce pot fi apoi incluse in alte programe,sub

forma de texte,grafice,calcul tabelar,sunete,animatie etc.

-puteti sa creati componente ce vor fi inglobate in alte aplicatii

-puteti utiliza "Drag and Drop" pentru a copia date intre aplicatii ce

utilizeaza un limbaj de programare diferit (copiaza doar valoarea datelor)

-puteti utiliza secvente de automatizare,pentru a controla un program

cu ajutorul unui alt program

-puteti crea controale sau containere de tip ActiveX

Principalele tipuri de clase de tip ActiveX sunt urmatoarele (clasifi-

cate dupa functionalitatea lor): Clase OLE Container,Clase OLE Server,

Clase Drag-and-Drop,Clase Data Transfer,Clase Common Dialog,Clase Automa-

tition,Clase OLE Control,Clase Active Document si Clase OLE-Related.

Clasele standard au fost dezvoltate prin drivare succesiva din clase

ancestoare.Astfel,cu cat o clasa are mai multi ancestori,cu atat moste-

neste mai multe proprietati si metode.Prin acest mecanism,se economiseste

un volum important de munca,deoarece functionalitatea esentiala a obiectu-

lui se mosteneste de la ancestori.Firma Microsoft a creat un arbore gene-

alogic al tuturor claselor de tip ActiveX dezvoltate de Microsoft,sub

denumirea de "Microsoft Foundation Class Library (cu mai multe versiuni).

Daca lucreti cu aceste clase,este bine sa aveti o plansa cu acest

arbore genealogic,pentru a va putea orienta mai usor.


-79-

Visual Basic va permite ambele tipuri de interactiune cu obiectele si

clasele de tip ActiveX.Puteti sa utilizati astfel de controale pentru a

dezvolta programe sau controale noi,sau puteti sa creati controale si

clase de tip ActiveX complet noi.Nu este necesar sa cunoasteti protocoale-

le si standardele interne,nici mecanismele de lucru.Toate operatiile ne-

cesare sunt efectuate automat.Nu trebuie decat sa definiti controalele si

apoi sa stabiliti functionalitatea lor.

Pentru a utiliza un obiect de tip ActiveX,cea mai simpla modalitate

este sa-l includeti in ToolBox,dupa care poate fi utilizat la fel ca si

controalele intrinsici (cele descrise anterior).Pentru a inculde un astfel

de obiect in ToolBox,alegeti din meniul Project optiunea Components si

apoi bifati in fereastra Components controalele dorite:

EXEMPLU: -deschideti un proiect nou

-selectati Project si Components si alegeti din lista

ActiveX LED Marquee Control (bifati caseta CheckBox),apoi confirmati

cu OK.In caseta ToolBox se va adauga un obiect de tip AXMarquee.

-adaugati in Form1 un control AXMarquee

-deschideti Form1.Properties,selectati obiectul AXMarquee1

si setati proprietatea Scrolling = True

-in acest moment,in obiect va incepe sa defileze textul din

proprietatea Text.Puteti schimba acest text.

-daca doriti sa puteti modifica textul si in timpul exe-

cutiei programului,adaugati si un control de tip TextBox si editati

urmatoarea procedura Change:

Private Sub text1_Change()

AXMarquee1.Text = Text1.Text

End Sub

Executati exemplul.Schimbati textul editatnd obiectul Text1.

Un alt obiect util este ChartFX 2.0 OLE Custom Control:

EXEMPLU: -deschideti un nou proiect

-din Project si Components adaugati un control de tip ChartFX

in ToolBox si apoi in Form1.

-executati un click drept pe obiect si alegeti Properties

-in fereastra Property Pages,alegeti meniul Tools si apoi

selectati caseta ToolBar

-alegeti meniul Data Values si selectati numarul de elemente

in caseta Points si numarul de serii in caseta Series

-setati valoarea maxima in YAxis / Max

-puteti utiliza si restul de meniuri pentru a personaliza

modul de presentare grafica: alegeti fonturi,adaugati titluri si expli-

catii sau o legenda,alegeti culorile etc.

-inchideti Property Pages si redimensionati obiectul astfel

incat sa fie cat mai bine reprezentat

Executati exemplul cu Ctrl+F5.In timpul executiei,puteti sa modificati

valoarea fiecarui element (implicit se vor utiliza doar valori aleatoare).

Pentru a seta valoarea fiecarui element,alegeti din bara de butoane pe

cel care are desenta pe el un ciocan (butonul Tools) si apoi alegeti me-

niul Data Editor.Se va afisa o grila,in care puteti seta valoarea pentru

fiecare element.Pentru a reveni la grafic,apasati din nou butonul Tools

si deselectati meniul Data Editor.Daca graficul are aspectul dorit,apasati

pe butonul cu imprimanta,pentru a tipari datele.


-80-

Lista de componente ActiveX va fi in functie de filele de tip .ocx

instalate in calculatorul d-voastra.Majoritatea acestor controale se in-

staleaza automat in directorul System din Windows,dar pot fi utilizate

indiferent de adresa la care au fost arhivate.Puteti completa aceasta

lista cu file preluate din orice sursa valabila (Internet).

Pentru a crea controale de tip ActiveX,utilizati la deschiderea pro-

iectului optiunea ActiveX Control (in loc de Standard EXE).In loc de Form1

se va deschide o fereastra denumita Project1-UserControl1.Puteti utiliza

direct aceasta fereastra,dar in acest caz,toate controalele realizate vor

fi denumite Project1 si vor crea conflicte de identificator.Pentru a

schimba numele proiectului,alegeti din meniul Project optiunea Project

Properties si inlocuiti in caseta Project Name textul dorit.In continuare,

controlul se realizeaza la fel ca un proiect obisnuit:

EXEMPLU: -deschideti un proiect nou de tip ActiveX

-selectati Project Properties si setati Project Name=Parola

-executati un click drept in fereastra UserControl1 si des-

chideti fereastra Properties.

-pentru a schimba numele ferestrei UserControl alegeti pro-

prietatea Name si introduceti numele dorit: Exemplu: ControlulMeu

-adaugati un control de tip Label

-setati Label1.Caption = "Introduceti parola:"

-adaugati un control de tip TextBox

-stergeti textul din Text1.Text

-adaugati un control de tip CommandButton

-setati Command1.Caption = Confirma

-dublu click pe buton si editati procedura Click:

Private Sub Command1_Click()

If Text1.Text = "Parola mea" Then

MsgBox ("Parola este corecta !")

Else

MsgBox ("Parola este incorecta !")

End Sub

Apoi alegeti din meniul File,optiunea Make...si construiti fila .ocx.Este

bine sa utilizati un director nou,dar puteti salva fila la orice adresa

doriti.Apoi salvati fila si proiectul.Daca salvati fila inainte de a con-

strui proiectul cu File,acesta va ramane neinregistrat si va returna un

mesaj de eroare.

Pentru a verifica noul component,deschideti un proiect nou de tip

Standard.EXE,alegeti din meniul Project optiunea Components,selectati con-

trolul proaspat realizat ("Parola"),confirmati cu Apply si apoi cu OK.

In bara ToolBox se va afisa noul control,cu numele sub care a fost salvat

("ControlulMeu").Adaugati in Form1 un control din acest tip si programul

poate fi executat cu Run si Start.

Observati ca nu se mai pot face nici un fel de modificari asupra con-

trolului nou realizat.Proiectul poate fi dezvoltat in continuare,prin

adaugarea unor ferestre noi.Dat fiind faptul ca fereastra Form1 este cea

de start,daca doriti sa dezvoltati proiectul,este recomandabil sa nu

utilizati aceasta fereastra pentru controlul nou creat.In fereastra Form1

puteti adauga un buton cu care deschideti o fereastra secundara in care

amplasati controlul.In acest mod,functionalitatea programului va fi mult

mai simpla.


-81-

Asadar,un control de tip ActiveX este extrem de usor de realizat.Nu

trebuie decat sa deschideti un nou proiect de tip ActiveX si sa utilizati

interfata grafica pentru a construi functionalitatea obiectului.Se pot

crea clase noi,sau se pot utiliza controalele intrinsici din bara ToolBox.

Daca este neceaar,se pot combina si mai multe controale de tip ActiveX,

pentru a crea un control nou.

Diferenta consta in faptul ca fereastra de tip UserControl nu poate

fi depanata in etapa de design (nu poate fi executata).Din acest motiv,

trebuie sa stiti exact ce anume doriti sa implementati in controlul dorit.

Cea mai buna modalitate,este sa procedati organizat.In prima etapa,faceti

o schema pe hartie cu principalele functii si aspectul general al contro-

lului dorit.Apoi deschideti un proiect de tip Standard.EXE si creati un

astfel de control executabil.Depanati cu rabdare fiecare proprietate,

metoda si eveniment,pana cand controlul corespunde exact cu modelul pro-

pus.La nevoie,copiati toate codurile mai complexe,pentru a fi mai usor de

transferat in proiectul de tip ActiveX.Apoi deschideti un proiect nou de

tip ActiveX si editati controlul.In final,verificati cu atentie controlul

realizat (apelati toate proprietatile,metodele si evenimentele).

In cazul in care controlul urmeaza sa fie utilizat in mod izolat,intr-o

fereastra oarecare,este putin probabil sa apara erori de executie nescon-

tate.Situatia se complica insa atunci cand controlul realizat urmeaza sa

interactioneze cu resul obiectelor din aplicatie.In acest caz,trebuie sa

verificati cu atentie fiecare procedura si fiecare identificator.

Controlul de tip ActiveX nu afiseaza codurile sursa.Pentru a putea fi

depanat si exploatat cat mai usor,este bine sa asociati si o fila secun-

dara cu codurile sursa,sau cel putin o fila de tip text in care sa expli-

cati cat mai clar functionalitatea obiectului si metodele de integrare in

proiect.Programul creaza automat si o fila de cod,cu extensia .ctl.Este

recomandabil sa atasati si aceasta fila,ori de cate ori doriti sa distri-

buiti un control de tip ActiveX realizat de d-voastra.In acest mod respec-

tati munca programatorului ce va folosi controalele d-voastra.Deasemenea,

este bine sa distribuiti si filele cu exetensia .vbp si .vbw.Cea mai buna

solutie este sa creati fiecare control ActiveX intr-un director separat si

sa distribuiti controlul impreuna cu toate filele create automat.

Nu are rost sa creati controale ActiveX banale.Este bine ca fiecare

control nou creat sa adauge o functionalitate noua,sau sa inlocuiasca un

volum oarecare de munca.Este util sa creati un astfel de control,atunci

cand repetati frecvent un anumit set de operatii.In loc sa repetati de

fiecare data acelasi algoritm,este mai simplu sa creati un control ActiveX

si apoi sa utilizati controlul respectiv.

Este bine,ca pe cat posibil controalele ActiveX sa fie cat mai mici,sa

consume cat mai putina memorie de RAM,sa nu genereze conflicte de identi-

ficator,sa exploateze cat mai multe variabile locale si private in dauna

celor globale si publice,pe scurt sa genereze cat mai putine cauze posi-

bile pentru erorile de executie si sa fie cat mai usor de depanat.

Puteti utiliza imagini grafice,icon-uri si cursoare,astfel incat con-

trolul sa fie cat mai spectaculos,dar nu uitati sa adaugati si o functio-

nalitate unica,sau cel putin o solutie avantajoasa pentru una dintre pro-

blemele de programare cu care va intalniti frecvent.

Controalele de tip ActiveX vor putea fi apelate de pe orice platforma

in care este implementat acest Standard.


-82-

Cea de a treia varianta de proiect,denumita CtlGroup permite combinarea

unei file executabile,cu designul unui control de tip ActiveX.Daca alegeti

aceasta varianta de proiect,puteti sa lucrati in paralel: in fereastra

UserControl creati controlul de tip ActiveX,iar in fereastra Form1,verifi-

cati functionalitatea.Daca dele doua ferestre vor fi identice,operatiile

de verificare si depanare vor fi mult mai simple.In plus,beneficiati la

sfarsit atat de un executabil cat si de un control de tip ActiveX identic

cu executabilul respectiv.

Nu este necesar sa utilizati cele doua ferestre in paralel.Daca doriti

puteti sa creati un control de tip ActiveX in UserControl si un proiect

total diferit in Project2.

EXEMPLU: -deschideti un proiect de tip CtlGroup

-deschideti fereastra Project Explorer pentru a putea naviga

in proiect

-observati ca de fapt sunt doua proiecte : Project1 cu o fe-

reastra de tip UserControl si Project2 cu o fereastra Form1

-redenumiti ambele proiecte si ambele ferestre

-editati un control de tip ActiveX in primul proiect (daca

doriti puteti include controlul ActiveX creat anterior (Parola)

-editati o interfata grafica oarecare in cel de al doilea

proiect (de exemplu un buton executabil)

-selectati proiectul de tip UserControl si construiti contro-

lul cu Make...

-apoi slavati toate filele si inchideti programul

Dupo repornire,puteti utiliza cel de al doilea proiect,sau puteti utiliza

controlul de tip ActiveX nou creat.

In fiecare dintre cele doua proiecte puteti adauga noi module de tip

Form,User Control,Class Module sau Module,dar grupul nu poate sa contina

mai mult de doua proiecte paralele.Acest tip de proiect este foarte avan-

tajos atunci cand nu stiti exact ce tip de control ActiveX doriti sa rea-

lizati si este necesar sa executati si o serie de manevre de tatonare.

Este bine sa utilizati acest tip de control in etapa de initiere,deoarece

permite si o depanare instantanee a principalelor proceduri si evenimente

implementate.La inceput,este recomandabil sa lucrati in paralel (controlul

si executabilul).Atunci cand controlul urmeaza sa interactioneze si cu

alte ferestre sau componente din viitorul program,puteti adauga in cel de

al doilea proiect si aceste ferestre,pentru a verifica functionalitatea

viitorului proiect (chiar daca nu figureaza in controlul ActiveX).

Pentru crearea controlului de tip ActiveX,puteti apela si la utilitarul

denumit ActiveX Control Interface Wizard.Pentru a apela acest wizard este

necesar sa deschideti un proiect de tip ActiveX sau CtlGroup si sa prefi-

gurati in fereastra User Control aspectul general al viitoarei interfete

(adaugati butoanele si controalele de care urmeaza sa aveti nevoie).Apoi

alegeti din meniul Add_Ins optiunea: ActiveX Control Interface Wizard.

Se va deschide fereastra ActiveX Control Interface Wizard in care

puteti sa adaugati noi proprietati,metode si evenimente pentru controlul

nou creat.Apasati butonul Next.In fereastra "Select Interface Members"

utilizati butoanele pentru a selecta proprietatile,metodele si evenimente-

le pe care doriti sa le includeti in control.In caseta Selected names vor

figura cele selectate,iar in caseta Available names vor fi afiosate cele

ce pot fi incluse.


-83-

De exemplu,adaugati proprietatile Align,Cancel si Caption (daca nu

exista).Apoi apasati butonul Next.In fereastra urmatoare puteti crea

proprietati noi (diferite de cele standard preexistente).De exemplu,

apasati butonul New,alegeti Type=Property si editati un nume (Prop11).

Apoi apasati butonul Next.In fereastra "Set Mapping" puteti atribui

fiecare dintre proprietati sau metode unuia dintre membrii constituenti

ai controlului.De exemplu,daca exista si un buton,puteti atribui proprie-

tatea Caption butonului respectiv.Apoi puteti sa atribuiti butonului si

proprietatea nou creata (Prop11).Dupa ce epuizati aceste operatii,apasati

Next.In fereastra urmatoare "Set Attributes" puteti specifica pentru

proprietatile noi introduse in obiect tipul de data,valoarea implicita

sau vizibilitatea sa (in timpul executiei sau in etapa de design).De

exemplu,pentru proprietatea noua Prop11 puteti alege tipul de data Integer

cu vaolarea implicita 10 si cu optiunea Read/Write atat pentru Run Time,

cat si pentru Design Time.Apoi apasati butonul Next.In etapa finala

puteti reveni la etapele anterioare cu Back,sau apasati butonul Finish,

pentru a definitiva controlul.Se va deschide automat fereastra ActiveX

Control Interface Wizard Summary in care sunt descrise pe scurt etapele

pe care puteti sa le urmati pentru a verifica sau aplica controlul nou

creat.Puteti salva aceasta fila,sau alegeti Close.Apoi selectati din nou

fila UserControl si construiti fila .ocx.Deschideti un nou proiect de

tip Standard.EXE si includeti noul control in Form1.Apoi deschideti fe-

reastra Properties si verificati noile proceduri,metode sau evenimente.

Acest utilitar confera un grad sporit de maleabilitate controalelor

realizate de d-voastra.Practic,putati adauga orice proprietate sau eveni-

ment dorit (chiar daca nu este in conexiune cu elementele din control).

Un alt utilitar extrem de practic este denumit Setup Wizard.Pentru a

lansa in executie acest wizard,apasati butonut START (Windows),alegeti

Programs,apoi Visual Basic 5.0 CCE si apoi optiunea Application Setup

Wizard.Acest utilitar se utilizeaza pentru a impacheta in acelasi director

toate filele neceare pentru executia unui proiect,incluzand si toate

filele si bibliotecile de tip DLL sau filele de resurse necesare.Puteti

alege si varianta de a imparti filele astfel incat sa incapa de dischete.

Parcurgeti wizardul pana la capat si apoi apasati butonul Finish.

Exista si un set de utilitare destinate pentru depanarea aplicatiilor

localizate in meniul Debug.In esenta se procedeaza ca pentru orice alt

tip de depanare: se fixeaza un set de nivele de intrerupere a programului,

apoi se executa programul pe etape,pana cand se localizeaza sursa erorii.

Acest procedeu este valoros in cazul modulelor de cod,dar este mai putin

operant pentru modulele multiple.O metoda asamanatoare,relativ simpla

este sa includeti in punctele cheie cate o fereastra de tip MsgBox().Pro-

gramul se va opri in acele puncte.Fragmentati astfel programul pana cand

identificati sursa erorii.

Un alt procedeu este sa urmariti o anumita expresie,cu ajutoriul unei

ferestre Add Watch.In punctele esentiale,programul poate fi executat pas

cu pas cu ajutorul optiunii Step Into.

Procedeele de baza pentru depanare sunt aceleasi ca pentru orice pro-

gram.Acest manual nu va intra in amanunte,deoarece acest mediu nu este

destinat pentru a crea programe mari,ci doar pentru a crea controale si

executabile relativ mici.Codurile sunt relativ scurte si necesita doar

rar procedee avansate de verificare si control sau depanare automata.


-84-

Erorile de sintaxa sunt de obicei identificate de compilator.Mai greu

de depistat si corectat sunt erorile ce intervin in etapa de executie si

erorile de conceptie.Erorile de executie se datoreaza de obicei unor

factori externi.De exemplu variabile si functii importate din file externe

conflicte de identificator sau supraincarcarea definitiilor,erori datorate

spatiunui de vizibilitate sau spatiului activ denumit (namespace),sau

conflicte cu tipurile de date importate din DLL-uri.Pentru a putea marca

un anumit punct din program,fara a intrerupe executia,se poate introduce

o functie Beep() in punctele cheie.Astfel programul va putea rula normal,

dar va pune in evidenta punctul critic.O alta solutie este sa executati

programul in diverse contexte de memorie.Uneori eroarea se datoreaza doar

memoriei insuficiente,unor alte date coexistente in memorie dar fara nici

o legatura cu programul (programe ce ruleaza in paralel).

Erorile cele mai grave sunt cele de conceptie.Daca interfata creata

nu include toate facilitatile necesare pentru o anumita functionalitate,

fie din neglijenta,fie din neatentie,aceasta greseala nu se poate corecta

decat prin rescrierea programului sursa.

In situatiile critice,salvati toate datele esentiale si apoi verificati

programul.Cea mai simpla solutie este sa pastrati in permanenta si o copie

de siguranta,pentru toate programele cu care lucrati frecvent.Decat sa va

lansati in manevre complexe de depanare si control,este intotdeauna mai

usor sa stergeti programul si sa reinstalati versiunea corecta.

Daca nu sunteti programatori profesionisti,este mai bine sa va axati

doar pe crearea unor controale cat mai fiabile.Este foarte importatnt sa

verificati cu maximum de exigenta fiecare linie din program in momentul

crearii,astfel incat componentele respective sa poata fi reutilizate in

siguranta,atat de d-voastra,cat si de alti utilizatori.Este mult mai bine

sa creati componente mici,simple si clare,decat programe complexe,greoaie

si/sau incomprehensibile.Chiar daca sunt extrem de simple,este bine sa

adaugati si o fila text cu explicatiile necesare.Atunci cand oferiti

programele si aplicatiile cu titlul de "freeware",este recomandabil sa

adaugati si filele sursa ("open source").Pentru cele realizate in scop

"comercial",puteti utiliza orice procedeu de protectie a datelor (desi eu

nu cunosc nici o persoana fizica cu venituri substantiale realizate prin

vanzare de componente software).

Familia programatorilor si utilizatorilor de componente create in

Visual Basic este foarte mare (milioane sau chiar sute de milioane de

membri).Daca respectati aceasta familie,ve-ti fi la randul vostru respec-

tati.

Mult succes.
Yüklə 0,98 Mb.

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




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