Visual Basic 0 abc-doar


-setati proprietatea Height la valoarea 615



Yüklə 0,98 Mb.
səhifə9/10
tarix03.11.2017
ölçüsü0,98 Mb.
#29921
1   2   3   4   5   6   7   8   9   10

-setati proprietatea Height la valoarea 615

-setati proprietatea Width la valoarea 4300

-executati un dublu click pe buton si editati procedura:

Private Sub Command1_Click()

Dim valoare

valoare = InputBox("Introduceti numele d-voastra !")

Label2.Caption = valoare

End Sub

-setati Command1.Caption = "Intrare date"

Executati exercitiul cu Ctrl+F5 si apoi apasati pe buton.Puteti redimen-

siona controlul si fonturile,sau puteti schimba culorile,dupa dorinta.


-61-

Pentru a dimensiona un control de tip Label inca din momentul crearii,

procedati astfel.In loc sa executati un dublu click,selectati din Toolbox

pictograma Label cu un singur click de mouse,apoi executati un click de

mouse in fereastra in pozitia dorita si trageti cu butonul mouse apasat,

pana cand controlul ajunge la dimensiunile dorite.La nevoie,utilizati

pataratelele mici albastre,pentru a redimensiona obiectul.

Label este un obiect complex.Pe langa proprietatile exploatate pana

acum,obiectul Label detine si un set complet de metode si evenimente.

Practic,un control de tip Label poate inlocui cu succes orice buton de

comanda si poate executa operatii sau proceduri declansate de un eveni-

ment oarecare (Click,DblClick,MouseMove etc.).

EXEMPLU: -deschideti un nou proiect

-adaugati un control de tip Label

-setati proprietatea Caption = "APASA AICI !"

-setati Height = 735

-setati Width = 3500

-alegeti culorile preferate pentru BackColor si ForeColor

-setati proprietatea Font la Size = 24

-executati un dublu click pe Label1 si editati procedurile:

Private Sub Label1_Click()

End

End Sub

Private Sub Label1_MouseMove(Button As Integer, -

Shift As Integer,X As Single,Y As Single)

Form1.BackColor = RGB(Rnd*250,Rnd*250,Rnd*250)

End Sub

Executati exercitiul cu Ctrl+F5 si deplasati indicatorul mouse deasupra

obiectului,sau executati un click in aria controlului.Observati ca obiect-

ul reactioneaza la evenimentul MouseMove schimband culoarea de fond.

Prin urmare,Label nu este doar o simpla eticheta decorativa,ci este un

obiect complex,in permanenta interactiune cu restul aplicatiei.In exemplul

de mai sus,a fost reprezentata grafic interactiunea generata de eveniment-

ul Mouse Move.Acest gen de interactiune are loc si daca nu specificati o

procedura de raspuns la evenimentul respectiv.Astfel,in momentul in care

indicatorul mouse se deplaseaza deasupra obiectului,acesta va emite in

permanenta mesaje de tip Windows,iar functia GetMessage va prelua aceste

mesaje.Procesorul va trebui sa prelucreze toate aceste mesaje,sa le fil-

treze si apoi sa elibereze stiva.Daca interfata grafica va contine zece

astfel de controale,numarul de mesaje interactive se va inmulti cu zece.

Nu trebuie sa faceti economie la controale.Au fost concepute pentru a

fi utilizate.Insa,puteti sa proiectati interfata grafica astfel incat sa

eliminati pe cat posibil mesajele inutile.De exemplu,in cazul in care

doua controale se vor utiliza foarte frecvent intr-o anumita ordine,puteti

amplasa cele doua controale astfel incat trecerea de la unul la altul sa

se faca direct,fara ca indicatorul mouse sa treaca peste alte controale.

Nu adaugati controale doar pentru decor.Fiecare control trebuie sa fie cu

un scop bine precizat si sa fie exploatat cat mai judicios.Atunci cand

interfata contine un numar foarte mare de controale,ce genereaza un numar

mare de evenimente,este bine sa inserati in punctele cheie ale executiei

si cate o functie DoEvents (intrerupe executia pana cand sistemul de ope-

rare proceseaza toate evenimentele restante).


-62-

TEXTBOX CONTROL

Este un obiect destinat pentru preluarea de date.Datele pot fi intro-

duse in etapa de design,pot fi introduse de catre utilizator in etapa de

executie,sau pot fi preluate cu ajutorul unor functii automate,de la alte

controale,din file de tip text sau din date de tip string rezultate in

urma unor operatii oarecare.

Functia sa de baza este asemanatoare cu cea realizata de functia Input-

Box,dar functionalitatea sa este mult mai complexa.TextBox este un obiect

complet,cu proprietati,metode si evenimente.TextBox poate prelua si texte

complexe,editate pe mai multe linii,cu conditia ca proprietatea MultiLine

sa fie setata True.Pentru a naviga intr-un text mai amplu se pot utiliza

si butoane de scroll (butoane de derulare) ce pot fi adaugate cu ajutorul

proprietatii ScrollBars.

Daca TextBox prelucreaza un text mai amplu,se poate utiliza proprieta-

tea Alignment,pentru a alinia textul spre dreapta sau spre stanga,cu con-

ditia ca proprietatea multiLine sa fie setata True.

Prin evenimentele sale,obiectul de tip TextBox interactioneaza cu restul

aplicatiei.Cel mai comod este evenimentul Change,cu ajutorul caruia se

poate prelucra sau copia textul editat in momentul in care este editat,dar

se poate utiliza orice alt eveniment,sau se pot crea proceduri noi.

Cea mai frecventa utilizare a acestui control este pentru a prelua si

transfera date catre un alt control,sau pentru a prelua si salva datele

introduse,fie intr-un tampon de memorie temporara,fie intr-o fila de tip

text (arhivare pe unitatea de memorie).In mod secundar,controlul poate fi

utilizat si pentru a filtra transferul de date dintre doua obiecte oareca-

re,pentru a realiza o interfata de comunicatie,pentru a cauta un set de

date intr-o arhiva,sau pentru orice alt set de operatii si comenzi.

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip TextBox

-adaugati un control de tip Label

-redimensionati ambele obiecte

-alegeti culoarea de fond si culoarea de editare

-stergeti textul din Label1.Caption

-setati proprietatea Label1.Autosize = True

-setati proprietatea Label1.BorderStyle = Fixed Single

-stergeti textul din proprietatea Text1.Text

-setati proprietatea Text1.Multiline = True

-setati proprietatea Text1.ScrollBars = Both

-executati un dublu click pe Text1 si editati procedura

Text1_Change() astfel:

Private Sub Text1_Change()

Label1.Caption = Text1.Text

End Sub

Executati exercitiul cu Ctrl + F5.Introduceti un text oarecare,eventual pe

mai multe randuri.Observati ca obiectul Label se acomodeaza dupa textul

introdus.In acest exemplu,controlul de tip TextBox este utilizat pentru a

transfera datele introduse de la tastatura,la obiectul de tip Label utili-

zat pentru afisarea datelor.Se pot introduce orice fel de caractere alfa-

numerice.Optional,puteti adauga si diverse functii de filtrare a datelor,

astfel incat sa nu accepte decat valori numerice,doar caractere sau doar

un anumit format al datelor.


-63-

Prin combinarea metodelor si a evenimentelor se pot obtine un numar

foarte mare de solutii tehnice,prin care se pot realiza fie artificii de

prezentare a datelor,fie functii de conversie sau de prelucrare a datelor.

Un eveniment foarte util este si evenimentul KeyPress.La fiecare apasare

a unei taste,evenimentul KeyPress va verifica si procedura atribuita.Se

poate utiliza fie pentru a verifica datele introduse(cu o lista de valori

compatibile),fie pentru a realiza o conversie automata a datelor,etc.

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip TextBox

-executati un dublu click de Text1 si editati procedura:

Private Sub Text1_KeyPress(KeyAscii As Integer)

Char = Chr(KeyAscii)

KeyAscii = Asc(UCase(Char))

Beep

End Sub

Executati exercitiul cu Ctrl+F5 si introduceti un text oarecare.Obser-

vati ca toate literele mici sunt convertite automat la majuscule.Functia

Beep are doar rolul de a semnaliza de fiecare data cand este apelata pro-

cedura de conversie (adica la fiecare tasta apasata).Puteti utiliza cate

un beep de control,ori de cate ori doriti sa veritficati in etapa de depa-

nare sau design functionalitatea unei proceduri.

Evenimentele pot fi cuplate intre ele,sau se pot adauga proceduri noi.

Probabil ca exemplul cel mai frecvent utilizat este cel pentru validarea

unei parole de acces:

EXEMPLU: -deschideti un nou proiect

-adaugati un control de tip TextBox

-adaugati un control de tip Label

-setati Label1.Caption = "Introduceti parola :"

-stegeti textul din Text1.Text

-executati un dublu click pe Text1 si editati procedurile:

Private Sub text1_Change()

Control

End Sub

Private Sub Control()

If Text1.Text = "Parola" Then

MsgBox ("Parola este corecta")

End If

End Sub

Executati exercitiul.Parola va fi validata doar daca introduceti textul

specificat in procedura de control (Parola).

Exista numeroase alte forme de implementare.Controlul de tip TextBox

poate fi utilizat pentru a face analiza unui text,dintr-o fila de tip

text (se citesc succesiv siruri de caractere si se analizeaza cu proce-

duri specializate),sau pentru a cauta un anumit sir de caractere intr-un

text.Tot cu ajutorul unui astfel de control (sau al unui set de controale)

se poate face si analiza unui fragment de cod,se pot seta proprietatile

unor obiecte,se pot introduce comenzi sau se pot transmite mesaje pe un

port de comunicatie,etc...

Atunci cand se lucreaza cu file de tip text,sau cu tampoane de memorie

situate la diverse adrese de memorie,trebuie sa specificati corect calea

de acces si sa verificati domeniul de vizibilitate al datelor respective.


-64-

Controlul TextBox are si alte proprietati interesante.De exemplu,daca

doriti sa mascati textul introdus in caseta de editare,puteti utiliza

proprietatea PasswordChar.Introduceti un caracter oarecare (de obicei se

utilizeaza caracterul *).In timpul executiei,indiferent ce caracter intro-

duceti in caseta de editare,aceasta va afisa carcaterul de masca,specifi-

cat in proprietatea PasswordChar.Acest tip de solutie este destinat mai

ales pentru aplicatiile in care utilizatorul va introduce o parola si se

doreste secretizarea codului utilizat,dar se poate extinde si la alt gen

de aplicatii.

Nu toate proprietatile pot fi utilizate in etapa de design.De exemplu,

proprietatile SelStart,SelLength si SelText permit preluarea selectiva a

unui fragment din textul introdus,dar nu pot fi utilizate decat in etapa

de executie a unei aplicatii:

EXEMPLU: -deschideti un nou proiect

-adaugati un control TextBox si un control Label

-executati un dublu click in fereastra si editati urma-

toarea procedura Click():

Private Sub Form_Click()

Text1.SelStart = 3

Text1.SelLength = 5

Label1.Caption = Text1.SelText

End Sub

Executati exercitiul cu Ctrl+F5 si introduceti un text oarecare,format din

cel putin 10 caractere,apoi executati un click in fereastra.Observati ca

se va transfera in obiectul de tip Label doar textul selectat intre cel

de al treilea caracter si urmatoarele cinci caractere.Acest gen de solutie

se poate utiliza de exemplu,pentru a extrage codul localitatii,dintr-un

numar telefonic,etc.

Controlul de tip TextBox se poate utiliza si pentru a prelua date

dintr-o baza de date (tabel .dbf) sau pentru a seta datele dintr-un astfel

de tabel.Pentru acest scop se utilizeaza proprietatile Data Control,Data-

Source si DataField in conexiune cu un obiect de tip Data.Controlul de

tip Data nu este acceptat pentru crearea de controale de tip ActiveX si

nu va fi descris in acest manual (se poate utiliza doar impreuna cu Visual

Basic Standard Edition).

Textul dintr-un control de tip TextBox poate fi transferat automat si

cu ajutorul unei operatii de tip Drag and Drop:

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip TextBox si unul de tip Label

-setati proprietatea Text1.Dragmode = 1 - Automatic

-executati un dublu click pe Text1 si editati procedura:

Private Sub Text1_DragOver(Source As Control,X As Single,Y As Single _

State As Integer)

Label1.Caption = Text1.Text

End Sub

Executati exercitiul cu Ctrl+F5.Editati un text oarecare si apoi incercati

sa deplasati controlul de tip TextBox (trageti cu butonul mouse apasat).

Se va executa automat procedura pentru DragOver (respectiv se va copia

textul in obiectul Label).

Studiati cu atentie toate proprietatile si metodele obiectului.Puteti

compune nenumarate solutii pentru combinarea lor in mod creativ.


-65-

LISTBOX CONTROL

Este un control destinat tot pentru comunicarea dintre utilizator si

program.Este format dintr-o lista de elemente de tip text,dintre care

utilizatorul poate alege una singura,sau poate alege mai multe elemente

simultan.Lista poate contine doar elemente fixe,introduse in lista in

etapa de design,sau poate contine elemente adaugate si sterse interactiv

in timpul executiei programului.

Acest gen de control este utilizat pe scara larga,datorita faptului ca

este foarte usor de utilizat si exclude erorile datorate unor greseli de

editare.Se utilizeaza mai ales pentru a afisa o lista de optiuni,dintre

care utilizatorul va selecta una singura,sau un grup oarecare de optiuni.

Pentru necesitati mai complexe,se pot crea si algoritmi de executie

automata a unui set oarecare de operatii.Fiecare element din lista are

un numar de indexare,astfel incat se pot elabora si functii de prelucrare

automata sau sortare a datelor.

Controlul de tip ListBox poate fi utilizat si pentru a filtra un anumit

set de date.De exemplu,se compara datele dintr-un text cu o lista presta-

bilita arhivata intr-un control de tip ListBox.Daca exista corespondenta,

datele respective vor fi tansferate in obiectul de destinatie.

Cea mai frecventa utilizare o reprezinta insa selectarea unei anumite

optiuni:

EXEMPLU: -deschideti un proiect nou

-adaugati un obiect de tip ListBox

-setati dimensiunile,fonturile si culorile

-selectati proprietatea List si editati optiunile:

Exemplu: Optiunea 1

Optiunea 2

Optiunea 3

-adaugati un control de tip Label

-dublu click pe controlul List1 si editati procedura:

Private Sub List1_Click()

Label1.Caption = List1.Text

End Sub

Executati exercitiul cu Ctrl+F5.Selectati cate o optiune si observati ca

este transferata automat in obiectul de destinatie.

Pentru a completa lista in timpul executiei:

-adaugati un buton

-setati Command1.Caption = "Adauga"

-editati urmatoarea procedura Click pentru buton:

Private Sub Command1_Click()

Dim text1

text1 = InputBox("Introduceti datele:")

List1.AddItem text1

End Sub

Executati din nou exercitiul si apasati pe buton.Datele introduse vor fi

prezente in controlul ListBox pe toata durata executiei,dar se sterg auto-

mat imediat dupa intreruperea programului.In mod similar,pentru a sterge

o parte dintre optiuni se poate utiliza metoda RemoveItem.

ListBox are si o serie intrega de evenimente.Nu ezitati sa experimen-

tati.De exemplu,incercati sa exploatati evenimentul Scroll Event,pentru

a adauga un set suplimentar de optiuni (in momentul derularii listei).


-66-

COMBOBOX CONTROL

Este un control combinat,format dintr-un control de tip TextBox si unul

de tip ListBox.Prin urmare,permite atat introducerea de date noi,cat si

selectarea acestora dintr-o lista predefinita.Este foarte frecvent utili-

zat in interfetele grafice,tocmai pentru ca este simplu si maleabil.Lista

de optiuni se poate edita fie in etapa de design,setand proprietatea List,

fie in etapa de executie cu ajutorul metodei AddItem.

EXEMPLU: -deschideti un proiect nou

-adaugati doua obiecte de tip ComboBox

-selectati obiectul Combo2 si setati proprietatea List

astfel: Optiunea 1

Optiunea 2

Optiunea 3

selectati obiectul Combo1,alegeti evenimentul KeyDown si

editati urmatoarea procedura:

Private Sub Combo1_KeyDown(KeyCode As Integer,Shift As Integer)

If KeyCode = vbKeyInsert Then

Combo1.AddItem Combo1.Text

End if

If KeyCode = vbKeyHome Then

Combo2.AddItem Combo1.text

End If

End Sub

Executati exercitiul cu Ctrl+F5.Introduceti date in Combo1.Daca doriti ca

datele respective sa fie salvate ca optiune de selectie pentru Combo1,

apasati tasta Insert,iar daca doriti ca datele sa completeze lista din

Combo2,apasati tasta Home.

Si in acest caz,datele adaugate in lista de optiuni vor fi temporare si

vor fi sterse automat la inchiderea programului.Daca doriti ca datele nou

introduse sa ramana ca optiune permaneta,se poate utiliza urmatorul proce-

deu.Deschideti o fila de tip text si compeltati lista de optiuni fixe.

In momentul initializarii programului,utilizati procedura Load,pentru a

prelua datele din fila text si a forma lista de optiuni.In timpul exe-

cutiei,puteti arhiva toate datele noi in fila text (adaugate la coada

listei).La urmatoarea reincarcare a programului,se va reincarca lista,com-

pletata cu datele noi.Eventual,puteti adauga si o procedura automata prin

care se verifica automat orice text introdus in caseta TextBox.Textul se

compara cu datele arhivate in fila text si in cazul in care nu exista co-

respondenta se adauga sub forma de optiune noua (Exemplu: acest gen de

solutie este aplicat pentru browserele de Internet).

Pentru obiectele de tip TextBox,ListBox si ComboBox este mai bine sa

evitati utilizarea evenimentelor Click si DblClick,pentru a evita orice

fel de confuzii.Evenimentul Click este utilizat implicit pentru a selecta

una dintre optiuni.Daca se supraincarca si o procedura editata de catre

utilizator,se vor executa ambele proceduri,dar se pot crea confuzii grave,

mai ales in etapa de depanare a programului (mai ales daca se utilizeaza

rutine automate de verificare si control).

Cand se utilizeaza seturi de controale de tip ComboBox,este bine sa fie

astfel amplasate,incat sa poata fi selectate cat mai usor (fara a activa

mesaje inutile de la controalele din vecinatate).Este bine ca grupurile

de controale sa fie incluse intr-un obiect container de tip Frame.


-67-

FRAME CONTROL si OPTIONBUTTON CONTROL

Frame control este un obiect de tip container.Se poate utiliza pentru

a crea grupuri de controale.Cu ajutorul controalelor de tip Frame,o inter-

fata grafica poate fi subdivizata in mai multe spatii de vizibilitate.

Dupa adaugarea unui control de tip Frame,toate controalele incluse in el

vor face corp comun cu acesta.Astfel,pentru a deplasa un grup intreg de

controale,va fi suficient sa deplasati doar controlul de tip Frame,in eta-

pa de design,si toate obiectele continute se vor deplasa inpreuna cu acest

control,pastrand si alinierea dintre ele.Mai mult decat atat,controlul de

tip Frame asigura un set de proprietati,metode si evenimente prin care se

pot particulariza operatiile din intefata.

Probabil ca cea mai frecventa aplicatie o reprezinta separarea dintre

doua sau mai multe seturi de butoane de tip OptionButton.

EXEMPLU: -deschideti un nou proiect

-adaugati doua controale de tip Frame

-adaugati cate trei butoane OptionButton in fiecare Frame

-setati Frame1.Caption = Culori

-setati Option1.Caption = Verde

Option2.Caption = Rosu

Option3.Caption = Albastru

-editati cele trei proceduri Click() pt.butoanele din Frame1

Private Sub Option1_Click()

Form1.BackColor = RGB(0,250,0)

End Sub

Private Sub Option2_Click()

Form1.BackColor = RGB(250,0,0)

End Sub

Private Sub Option3_Click()

Form1.BackColor = RGB(0,0,250)

End Sub

-setati Frame2.Caption = Dimensiuni

-setati Option4.Caption = Mica

-setati Option5.Caption = Mijlocie

-setati Option6.Caption = Mare

-editati procedurile Click pentru butoanele din Frame2:

Private Sub Option4_Click()

Form1.Height = 3000

Form1.Width = 4500

End Sub

Private Sub Option5_Click()

Form1.Height = 5000

Form1.Width = 7500

End Sub

Private Sub Option6_Click()

Form1.Height = 7000

Form1.Width = 9000

End Sub

Incercati sa deplasati putin cele doua controale de tip Frame.Observati

cum se deplaseaza si butoanele.Setati dimensiunile si culorile pentru

fiecare control,apoi alegeti fonturile preferate.

Executati exercitiul cu Crtl+F5 si verificati fiecare buton.


-68-

Acest gen de solutie,permite ca utilizatorul sa aleaga sau sa combine

un set oarecare de optiuni.In general,utilizatorii doresc sa poata face

astfel de optiuni,pentru a avea senzatia ca "situatia este sub control".

Butoanele de tip OptionButton sunt ideale pentru astfel de situatii,in

care o anumita optiune este,sau nu este selectata (situatii DA sau NU).

Butoanele de tip OptionButton se utilizeaza de obicei in grupuri,dintre

care utilizatorul va alege o singura varianta.Selectarea unuia dintre

butoane,va deselecta automat toate celelalte butoane.Daca nu se utilizeaza

controale de tip Frame,pentru a separa grupurile,selectarea unui astfel

de buton va deselecta toate butoanele din aplicatie.

Butoanele de tip OptionButton pot avea aspectul de butoane radio,sau

pot fi afisate sub forma de butoane clasice cu sau fara o imagine de tip

Bitmap.Pentru a selecta modul de afisare se utilizeaza proprietatea

Style.Style = Standard va afisa butoane Radio,iar Style = Graphical va

afisa butoane cu imagine de tip Bitmap.

Pentru fiecare buton,proprietatea Caption afiseaza un text explicativ,

iar BackColor si ForeColor se pot utiliza pentru a selecta nuanta de

culoare dorita.In general,nu este bine ca aplicatia sa fie foarte bogat

colorata,dar este recomandabil ca fiecare control sa fie cat mai bine

individualizat.O solutie eleganta este sa nu utilizati mai mult de trei

sau patru culori contrastante (prea multe culori obosesc ochiul).

Pentru a controla selectarea sau deselectarea unuia dintre butoane cu

ajutorul unor linii de cod,sau prin rutine automate,se poate utiliza pro-

prietatea Value (True sau False).

Fiecare astfel de buton va avea un set complet de proprietati,metode

si evenimente.

Fiecare obiect adaugat in aplicatie trebuie sa fie foarte bine ales.

Exemplul de mai sus,este destul de intuitiv pentru exemplificarea acestui

tip de controale,dar este complet nerecomandabil pentru o aplicatie reala

deoarece controalele adaugate sunt absolut inutile.In timpul executiei,

utilizatorul poate selecta dimensiunea ferestrei tragand cu mouse apasat

de unul dintre colturi.Cele trei butoane,plus controlul de tip Frame,nu

fac decat sa adauge cate un caz particular,prin care aplicatia nu are

nimic de castigat.Se ocupa intregul spatiu grafic,se ocupa spatiu de me-

morie,se introduc in program un numar foarte mare de mesaje si evenimente

dar functionalitatea programului nu are nimic de castigat.Asadar,exemplul

de mai sus,este mai degraba un contraexemplu.

Daca realizati interfata grafica "la comanda",pentru un beneficiar,

este bine sa negociati cu viitorul utilizator fiecare astfel de optiune

la care doreste sa poata avea acces direct in timpul executiei programu-

lui (se pot realiza seturi de controale "personalizate").

Pentru a creste eficienta fiecarui control,puteti grupa cate doua,sau

chiar mai multe evenimente.De exemplu,evenimentul Click poate fi foarte

bine corelat cu evenimentul GotFocus.Unul dintre evenimente va activa o

procedura pentru operatiile vizibile in interfata,iar cealalta procedura

poate efectua operatii invizibile,operatii de management si mentenanta,

operatii de arhivare sau analiza statistica etc.

Cand remodelati sau restructurati o interfata grafica,este bine ca

grupurile de butoane optionale si procedurile lor sa fie pastrate.Astfel

se poate lucra "in bloc" dupa un sistem modular.La nevoie,eliminati to-

tal grupul de butoane,impreuna cu containerul de tip Frame.


-69-

CHECKBOX CONTROL

Este un control destinat tot pentru validarea sau invalidarea unei op-

tiuni.Spre deosebire de butoanele de tip OptionButton,fiecare control de

tip CheckBox este complet independent de celelalte controale de acelasi

fel.Daca in interfata exista simultan mai multe controale de tip CheckBox,

selectarea sau deselectarea unuia dintre ele nu are nici un efect asupra

celorlalte.Fiecare astfel de control,permite alegerea unei optiuni sau

setarea unei variabile,in timpul executiei programului.Daca se utilizeaza

grupuri de astfel de controale,se poate obtine oricare dintre combinatiile

posibile de selectare,sau deselectare a lor.In general se utilizeaza in

aplicatii pentru valori de tip True/False,pentru confirmarea sau anularea

unei operatii (optiune DA sau NU ) sau pentru personalizarea datelor.

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip TextBox

-adaugati doua controale de tip CheckBox

-setati Check1.Caption = "Size 15 "

-setati Check2.Caption = "Arial Black"

-editati evenimentul Change pentru Text1 astfel:

Private Sub Text1_Change()

If Check.Value = Checked Then

Text1.Font.Size = 15

End If

If Check1.Value = Unchecked Then

Text1.Font.Size = 8

End If

If Check2.Value = Checked Then

Text1.Font = "Arial Black"

End If

If Check2.Value = Unchecked Then

Text1.Font = "MS Sans Serif"

End If

End Sub

Executati exercitiul cu Ctrl+F5.Editati un text oarecare si apoi selectati

una dintre optiuni (sau amandoua) si apoi continuati editarea textului.

In exemplul de mai sus,am verificat doar proprietatea Value,pentru a

seta in timpul executiei tipul si dimensiunea fonturilor utilizate pentru

editare.Acest gen de solutie,poate fi aplicat atunci cand interfata este

destinata pentru editarea de texte personale.Utilizatorul va putea scrie

si citi datele utilizand fonturi mari,sau va putea arhiva si imprima date-

le utilizand fonturile normale.

Obiectul de tip CheckBox este un obiect complet.Puteti utiliza pro-

prietatile pentru a personaliza aspectul grafic,sau puteti utiliza meto-

dele si evenimentele,pentru a controla operatiile executate in program.

Si in acest caz,este mai bine sa evitati evenimentul Click,pentru a nu

supraincarca procedura implicita (cea de selectare a controlului).

La fel ca si butoanele OptionButton,pot avea si aspectul de buton cu sau

fara o imagine grafica,daca se selecteaza proprietatea Style = Graphical.

CheckBox control poate fi utilizat si prin operatii de tip Drag and Drop

(adica se poate selecta sau deselecta tragand deasupra lui un alt control

sau o pictograma oarecare din interfata. Exemplu: asa cum se debaraseaza

filele inutile in cutia denumita Recycle Bin).


-70-

Controalele de tip CheckBox sunt inerte.Pentru a verifica in permanenta

modul in care sunt setate,trebuie sa utilizati o bucla de repetitie,sau

sa verificati periodic proprietatea Value.In exemplul de mai sus,modul

de setare este verificat automat,la fiecare modificare a textului din

caseta Text1.Daca nu utilizati un astfel de eveniment cu repetitie,atunci

controlul nu va functiona decat la prima selectie,dupa care ramane inert.

O solutie destul de practica se poate obtine prin combinarea evenimentelor

ce apartin obiectului CheckBox.De exemplu,combinand evenimentul GetFocus

cu KeyDown sau KeyPress,sau MouseUp se pot obtine algoritmi discriminativi

pentru fiecare operatie de selectare a controlului.

Daca interfata contine un numar mare de controale de tip CheckBox ce

sunt setate si resetate foarte frecvent in timpul executiei,se poate crea

o procedura speciala de tip While...Wend sau Do...Loop,in care starea

acestor controale este verificata permanent pe toata durata de executie a

programului.

Daca utilizati aceste controale intr-o interfata cu mai multe variante

personalizate,este util sa le grupati in interiorul unui control de tip

Frame.Astfel,pentru fiecare varianta de interfata nu va trebui decat sa

rearanjati obiectul Frame (pastrand si blocul de proceduri).

Acest tip de control este foarte util,deoarece:

1. -ocupa putin spatiu de memorie

2. -ocupa putin spatiu grafic

3. -nu se preteaza la erori de executie

4. -poate controla un numar relativ mare de evenimete si operatii

5. -permite personalizarea aplicatiei

HSCROLLBAR si VSCROLLBAR CONTROL

HScrollBar (bara de defilare orizontala) si VScrollBar (bara de defi-

lare verticala) sunt controale destinate pentru a putea naviga cu usurin-

ta intr-o lista de date,sau intr-un set mai amplu de valori numerice.Se

pot utiliza si pentru a indica o pozitie in spatiu,sau pentru a forma

un buton de culisare prin care se indica un volum,o cantitate etc.O serie

de controale standard au incluse in design si astfel de bare de derulare

(Exemplu : TextBox Control).

Pentru a reglemnta domeniul de valori acceptabile se pot seta proprie-

tatile Max si Min,iar pentru a determina valoarea actuala se poate utiliza

proprietatea Value.

Dintre evenimente,cel mai util este evenimentul Change.Pentru solutii

mai elaborate se pot exploata si evenimentele GotFocus si respectiv Lost-

Focus sau suita de evenimente DragDrop si DragOver.

Dintre metode,se remarca metoda Move.Daca se aplica aceasta metoda unei

ferestre,sistemul de coordonate pentru deplasare va fi in "twips".Un twip

este o unitate de masura independenta de ecran si este egala cu 1/20 din

punctul de imprimare,sau cu 1/567 cm.Prin acest sistem,amplasarea si ra-

portul grafic se pastreaza in aplicatie,indiferent de ecranul pe care se

va afisa interfata respectiva.Metoda Move se utilizeaza pentru a deplasa

un control intr-o fereastra.

Merita studiate cu atentie si metodele Drag si Refresh.Cu ajutorul

acestor controale relativ simple,se pot controla operatii destul de com-

plexe,prin care se pot organiza si controla grupe mari de valori.


-71-

EXEMPLU: -deschideti un proiect nou

-adaugati doua controale VScrollBar si unul HScrollBar

-setati dimensiunile dorite si alegeti pozitia lor

-adaugati si trei controale de tip Label

-editati cate o procedura Change pentru fiecare Scroll:

Private Sub HScroll1_Change()

Form1.BackColor = RGB(VScroll1.Value,HScroll1.Value,VScroll2.Value)

Label1.Caption = Str(VScroll1.Value)

Label2.Caption = Str(HScroll1.Value)

Label3.Caption = Str(VScroll2.Value)

End Sub

Private Sub VScroll1_Change()

Form1.BackColor = RGB(VScroll1.Value,HScroll1.Value,VScroll2.Value)

Label1.Caption = Str(VScroll1.Value)

Label2.Caption = Str(HScroll1.Value)

Label3.Caption = Str(VScroll2.Value)

End Sub

Private Sub VScroll2_Change()

Form1.BackColor = RGB(VScroll1.Value,HScroll1.Value,VScroll2.Value)

Label1.Caption = Str(Vscroll1.Value)

Label2.Caption = Str(HScroll1.Value)

Label3.Caption = Str(VScroll2.Value)

End Sub

Executati exercitiul cu Ctrl+F5 si deplasati butoanele de scroll din fie-

care bara.Se pot obtine peste 16.000.000 de nuante de culoare.In controa-

lele de tip Label se afiseaza valoarea numerica pentru ficare dintre cele

trei culori.Puteti utiliza acest exercitiu pentru a alege nuantele prefe-

rate,pe care le puteti apoi obtine cu ajutorul functiei RGB().

Practic,cele trei proceduri sunt identice.Pentru optimizarea programu-

lui,se poate edita o procedura unica pe care sa o apeleze cele trei eveni-

mente Change.Am utilizat aceasta varianta de implementare,pentru a per-

mite modificarea ulterioara a procedurilor.De exemplu,puteti utiliza cele

trei butoane de scroll pentru a modifica fonturile unui text,pentru a

deplasa un obiect sau pentru a realiza o imagine grafica...etc.

EXEMPLU: -deschideti un nou proiect

-adaugati un obiect de tip HScrollBar

-editati urmatoarea procedura Change:

Private Sub VScroll1_Change()

Dim numar

Randomize

numar = 3000 + Rnd * 2000

Move numar,numar,numar,numar

End Sub

Executati exercitiul cu Ctrl+F5 si deplasati butonul de scroll.La fiecare

deplasare a butonului,fereastra Form1 va face o miscare aleatorie,generata

de functia Random.In mod similar,metoda Move se poate utiliza pentru a

crea diferite efecte de animatie.

Pentru salturi valorice mari se utilizeaza butonul de navigare,iar

pentru miscari de finete se utilizeaza cele doua butoane cu sageata de

la capatul barei de scroll.Pentru a regla saltul executat la fiecare click

se pot utiliza proprietatile SmallChange si respectiv LargeChange.


-72-

DRIVELISTBOX CONTROL,DIRLISTBOX CONTROL si FILELISTBOX CONTROL

Aceste controale sunt deatinate pentru a permite utilizatorului sa na-

vigheze usor prin unitatile de memorie si sa selecteze cu usurinta calea

de acces spre o anumita fila.DriveListBox permite accesul direct la toate

unitatile de disc instalate.DirListBox permite afisarea unei liste cu

toate directoarele (folderele) din unitatea curenta,iar FileListBox loca-

lizeaza si afiseaza toate filele existente in directorul curent.

Cele trei controale pot fi utilizate si separat,dar in majoritatea ca-

zurilor se grupeaza impreuna,pentru a permite navigarea prin intreaga me-

morie instalata.Pentru a cupla intre ele cele trei controale,se utilizeaza

proprietatea Drive a controlului DriveListBox si respectiv proprietatea

Path a celorlalte doua controale:

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip Label

-adaugati un control de tip DriveListBox

-adaugati un control de tip DirListBox

-adaugati un control de tip FileListBox

-asezati si redimensionati controalele,astfel incat sa fie

cat mai comod de utilizat

-editati urmatoarele proceduri Change si respectiv Click:

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Private Sub Drive1_Change()

Dir1.Path = Drive.Drive

End Sub

Private Sub File1_Click()

Label1.Caption = File1.Path + "\" + File1.filename

End Sub

Executati exercitiul cu Ctrl+F5.Puteti naviga prin intreaga memorie insta-

lata.Label1 va afisa calea de acces la oricare dintre filele selectate.

Utilizand acceasi formula (File1.Path + "\" + File1.filename) puteti des-

chide fila respectiva in timpul executiei,pentru citire sau pentru edi-

tarea si actualizarea datelor.Practic,cu aceasta combinatie de controale,

puteti avea acces,din interiorul interfetei,la toate datele de pe disc.

Fiecare dintre cele trei controale are si un set complet de proprie-

tati,metode si evenimente.Puteti combina creativ aceste evenimente pentru

a executa si operatiile necesare in program.Astfel,in loc sa mai adaugati

inca cateva butoane de control,puteti utiliza direct evenimentele fiecarui

control.Exemplu: pentru a salva o fila oarecare in directorul curent,se

poate utiliza evenimentul DblClick Event al controlului FileBoxControl.In

acest mod se economiseste un control inutil.Evenimentele trebuie sa fie

astfel alese incat sa nu se confunde cu cele implicite (pe cat posibil se

vor evita evenimentele Click,GotFocus,Mouse Down si Mouse Up sau Scroll,

dar se pot utiliza fara restrictii evenimentele KeyDown,KeyUp,KeyPress,sau

DblClick (deoarece nu se pot confunda cu evenimentele implicite).

Pentru a afisa doar o parte dintre file,se pot utiliza proprietatile

Archive,Hiden,Normal,System sau Pattern (din controlul FileListBox).Tipul

de solutie se va alege in functie de necesitatile din aplicatie sau in

functie de gradul de liberatate pe care doriti sa-l asigurati utilizatoru-

lui (acces discretionar,acces conditionat,acces limitat...etc.).


-73-

IMAGE CONTROL si PICTUREBOX CONTROL

Ambele sunt destinate pentru a afisa imagini grafice,preluate din file

de tip bitmap,icon sau metafile si file .jpeg sau .gif.

Controlul de tip Image este ceva mai rudimentar,in sensul ca are un

set limitat de metode si evenimente.Se utilizeaza mai ales pentru a pre-

zenta imagini grafice fixe.Nu poate include alte obiecte,dar se poate

folosi pentru a realiza o imagine de fundal,peste care se pot suprapune

apoi alte reprezentari grafice.

PictureBox este un control asemanator cu Image,dar detine un set mult

mai larg de metode si evenimente.In plus,poate fi utilizat pe post de

container,pentru alte obiecte de gen OptionButton,etc.Se utilizeaza mai

ales pentru a realisa desene animate,sau efecte speciale.

EXEMPLU: -creati doua file de tip .bmp,cu orice tip de editor grafic

-prima fila cu dimensiuni de 400/400 va realiza imaginea de

fond,iar cea de a doua,cu dimensiuni de 100/100 va putea fi

deplasata in fereastra (Exemplu: o barca pe mare)

-deschideti un nou proiect

-adaugati un control de tip Image,redimensiunati obiectul

astfel incat sa ocupe intreaga fereastra,apoi selectati proprietatea

Picture si introduceti imaginea de fond

-adaugati un control de tip PictureBox.

-setati proprietatea Autosize = True

-utilizati proprietatea Picture pentru a adauga cea de a

doua imagine grafica

-amplasati obiectul PictureBox in pozitia dorita

-adaugati un control de tip Timer

-setati Timer1.Interval = 50

-editati urmatoarea procedura:

Private Sub Timer1_Timer()

Picture1.Move Picture1.Left - 20

End Sub

Executati exercitiul cu Run si Start.

Pentru controlul de tip Image,se poate exploata proprietatea Strech,

pentru ca imaginea sa fie extinsa la intregul control,iar pentru cel de

tip PictureBox se poate exploata proprietatea Autosize.

Obiectul PictureBox are o serie intreaga de facilitati in plus: -pro-

prietatile CurrentX si CurrentY,DragMode si DrawMode,FillColor si Fill-

Style,ScaleLeft si ScaleTop etc. precum si o serie de metode utile,cum

sunt: Drag,Move,Paint,Point,Scale etc.

Pentru a putea deveni programatori de jocuri,va trebui sa studiati si

sa experimentati toate aceste facilitati.Exista o serie intreaga de sfa-

turi de tip "Tips and tricks" ce pot fi descarcate de pe Internet,dar cel

mai bun profesor este tot munca individuala.

Fata de alte medii de programare,Visual Basic este foarte usor de

controlat si ofera o solutie extrem de simpla pentru efectele grafice.Nu

exista nici un fel de restrictii standardizate,dar este bine sa nu supra-

incarcati interfata cu prea multe imagini grafice,decat daca au si o

utilitate oarecare(Exemplu : efect de animatie pentru copierea unei file).

Puteti utiliza aceste controale si pentru reprezentari grafice ale

valorilor numerice prezentate in program,fie sub forma de grafice simple,

fie cu efecte de animatie.


-74-

EXEMPLU: -deschideti un nou proiect

-adaugati un control de tip PictureBox

-setati proprietatile Height = 2500 si Width = 3000

-editati urmatoarea procedura Click:

Private Sub Picture1_Click()

Picture1.Line (100,100)-(100,200),RGB(250,0,0)

Picture1.Line (100,2000)-(2000,2000),RGB(250,0,0)

Picture1.Circle(1000,1000),500,RGB(0,0,250)

End Sub

-selectati proprietatea FillColor se selectati culoarea

dorita pentru umplerea figurilor geometrice

-selectati proprietatea FillStyle si setati optiunea

Solid

-amplasati obiectul PictureBox in pozitia dorita

Executati exercitiul cu Run si Start si apoi executati un click in inte-

riorul ariei PictureBox.

Pentru a realiza efecte de animatie,va trebui sa utilizati un Timer,

sa stergeti periodic o parte dintre reprezentarile grafice si sa le inlo-

cuiti cu altele noi.

EXEMPLU: -utilizati exemplul anterior

-adaugati un control de tip Timer

-setati Timer.Interval = 1000

-editati procedura Timer astfel:

Private Sub Timer1_Timer()

Randomize

Picture1.FillColor = RGB(Rnd*250,Rnd*250,Rnd*250)

Picture1_Click

End Sub

Executati exercitiul cu Run si Start.Executati un click in PictureBox.La

fiecare secunda,se va schimba culoarea de umplere a cercului,cu o culoare

aleatorie.Eventual,incercati sa deplasati cercul la fiecare secunda (va

trebui sa stergeti imaginea veche si sa desenati una noua).

Pentru a putea schimba imaginea de tip bitmap afisata de control,in

timpul executiei programului,se poate apela functia LoadPicture(nu este o

metoda a obiectului),cu conditia sa specificati exact calea de acces la

fila sursa:

EXEMPLU : -deschideti un proiect nou

-denumiti directorul curent Exemple

-adaugati in directorul curent cele doua file de tip .bmp

denumite Bitmap1.bmp si Bitmap2.bmp

-adaugati in Form1 un control de tip PictureBox

-introduceti fila Bitmap1.bmp in proprietatea Picture

-editati urmatoarele evenimente Click si Dblclick

Private Sub Picture1_Click()

Picture1.Picture = LoadPicture(CurDir() + "\Exemple\Bitmap2.bmp")

End Sub

si Private Sub Picture1_DblClick()

Picture1.Picture = LoadPicture(CurDir() + "\Exemple\Bitmap1.bmp")

End Sub

Executati exercitiul cu Ctrl+F5.Executati un click,apoi un dublu click de

mouse (daca este cazul,inlocuiti numele directorului sau cel al filelor).


-75-

SHAPE CONTROL si LINE CONTROL

Sunt controale grafice simple,fara evenimente.Se pot utiliza pentru a

decora interfata grafica,sau pentru a delimita si marca anumite portiuni

din interfata.Nu emit si nu receptioneaza mesaje de tip Window,asa ca nu

pot interactiona cu restul obiectelor din interfata.Prezinta insa avanta-

jul de a nu bloca memoria de operare cu mesaje inutile.Sunt dotate cu un

set minimal de proprietati si metode,destinate mai ales pentru realizarea

aspectului grafic.Prin combinarea creativa a unor astfel de obiecte,se

pot realiza si reprezentari grafice complexe,statice sau animate.

Shape permite afisarea unor forme geometrice de tip dreptunghi,patrat,

elipsa,cerc,patrat cu colturi rotunjite sau cerc cu colturi rotunjite,cu

contur si culoare de fond in orice nuanta posibila.

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip Shape

-alegeti o culoare pentru BorderColor

-setati BorderWidth = 5

-alegeti o culoare pentru FillColor

-setati FillStyle = Solid

-setati proprietatea Shape = Circle

-adaugati un control de tip Timer

-setati Timer1.Interval = 200

-editati urmatoarea procedura:

Public x As Variant

Private Sub Timer1_Timer()

x= x + 1 / 10

Shape1.Left = 1500 + 1000 * Cos(x)

Shape1.Top = 1200 + 1000 * Sin(x)

End Sub

Executati exercitiul.Imaginea grafica va executa o miscare de rotatie in

jurul centrului fix (1500,1200).

Controlul de tip Line,este asemanator cu cel de tip Shape,dar nu poate

fi utilizat decat pentru a desena linii.Este util pentru reprezentari de

tip grafic de evolutie.

EXEMPLU: -deschideti un proiect nou

-adaugati un control de tip Line cu coordonatele:

x1=720,x2=720,y1=480,y2=2760

-alegeti culoarea rosie pentru BorderColor

-setati BorderWidth = 5

-adaugati un alt control de tip Line cu coordonatele:

x1=720,x2=4200,y1=2760,y2=2760

-alegeti culoarea rosie pentru BorderColor

-setati BorderWidth = 5

-adaugati un nou control de tip Line cu coordonatele:

x1=4200,x2=720,y1=960,y2=2760

-alegeti o culoare pentru BorderColor (verde smarald)

-setati BorderWidth = 5

-adaugati obiecte de tip Label pentru a explica cele doua

axe de coordonate si tipul de valoare reprezentata grafic.

Executati exercitiul.In mod similar,puteti combina diferite obiecte de

tip Shape si Line,pentru a forma reprezentari grafice,sau pentru diverse

tipuri de animatie si efecte speciale.


-76-

OLE CONTAINER CONTROL

Este un control destinat pentru a putea utiliza obiecte de tip OLE.

OLE este prescurtarea de la Object Linking and Embedding si este un meca-

nism prin care utilizatorii pot utiliza in interfata grafica obiecte care

au fost create in alt program (Exemple: clipuri muzicale sau video,file

de calcul tabelar de tip Excel,imagini grafice de tip BitMap etc.).

Tehnologia OLE include doua metode fundamentale pentru utilizarea

obiectelor create in alt program: link(conecteaza) si embedd(inglobeaza).

Un obiect conectat(linked object) este creat in alt program si pastreaza

in programul respectiv toate datele si definitiile sale.Interfata grafica

in care este utilizat,va contine doar o referinta (un pointer) spre

adresa de memorie la care este arhivat obiectul respectiv.Orice operatie

asupra datelor se va putea face doar prin intermediul programului sursa.

Un obiect inglobat(embedded object) este creat in alt program,dar este

copiat in intregime in programul ce gazduieste interfata grafica,cu toate

datele si definitiile sale.O data creat,un astfel de obiect va putea fi

utilizat la fel ca orice alt obiect din interfata (nu mai depinde de pro-

gramul sursa).Pentru implementarea acestei tehnologii sunt necesare doua

tipuri de aplicatii: o aplicatie server (cea care furnizeaza obiectul) si

o aplicatie container (cea in care este utilizat).Serverele si containe-

rele nu comunica intre ele direct,ci prin intermediul unor biblioteci cu

alocare dinamica (file de tip DLL,in care sunt arhivate functiile ).

Asadar,pentru a putea utiliza un control de tip OLE,trebuie sa existe

si obiecte inserabile,ce pot fi inglobate,sau pot fi conectate la obiectul

container.Inserarea acestor obiecte se poate face fie in etapa de design,

fie in etapa de executie (cu ajutorul functiei CreateObject).

Obiectele inserate in container,pot fi deplasate cu ajutorul metodei

Move.Dupa deplasare,este posibil ca obiectul sa fie putin distorsionat,

deoarece deplasarea se calculeaza in Twips,iar conversia repetata intre

twips si pixeli poate genera mici aproximatii fata de valorile initiale.

EXEMPLU: -deschideti un nou proiect

-adaugati un control de tip OLE

-deschideti fereastra Properties

-alegeti proprietatea OLE1.Class si selectati una dintre

clasele de obiecte inserabile accesibile (lista acestor clase de obiecte

va fi diferita in functie de programele instalate pe calculatorul d-voa-

stra).De exemplu,alegeti Wordpad.Document.1

-pentru a crea obiectul propriu-zis,executati un click

drept de mouse in obiectul OLE1 si alegeti: Create Embedded Object.

-se va ingloba un obiect de tip WordPad.Pentru a putea

beneficia de toate caracteristicile acestui obiect,executati un click in

OLE1,in afara obiectului inserat,apoi executati un click drept de mouse

tot in OLE1 si alegeti optiunea Open.Se va deschide o fila de tip Word,

cu meniul complet de optiuni si comenzi.Pentru a edita doar un text

simplu,puteti utiliza si optiunea Edit.

-editati textul dorit,apoi salvati proiectul

Obiectul OLE1 contine si un set propriu de proprietati,metode si eveni-

mente,prin care se poate dezvolta functionalitatea obiectului inglobat.

Se poate crea un mediu personalizat de executie si prezentare a datelor,

sau se pot efectua diverse operatii asupra textului editat.(Exemplu:

schimbati culoarea de fond,sau apelati metoda DoVerb).


-77-

Gama de obiecte ce pot fi exploatate cu ajutorul containerului de tip

OLE este foarte vasta (si este in permaneta dezvoltare).Cateva exemple:

AVIFile,DrawPad.drawind,midfile,mplayer,MSGraph.Chart.5,Package,Paint.Pic-

ture,PBrush,SoftwareFx.ChartFX.20,VSPELLER.VSpallCtrl.1,Wordpad.Document.

Clasele de baza din care se pot ingloba aceste obiecte sunt din ce in

ce mai dezvoltate si pot fi preluate din diverse arhive de pe Internet.

Nu toate aceste obiecte vor functiona perfect.Chiar daca sunt editate cu

tehnologia OLE,nu se poate garanta o functionalitate perfecta,deoarece

mediul in care au fost create poate fi extrem de diferit de cel in care

sunt apelate.Este bine sa verificati cu atentie fiecare amanunt,inainte

de a utiliza aceste obiecte in aplicatii de uz general.Verificati forma-

tul datelor si consumul de memorie RAM si/sau corectati eventualele in-

compabilitati.Daca nu puteti descifra functionalitatea unui astfel de

control,este mai bine sa renuntati la utilizarea lui.

Pentru reprezentarea unor valori numerice sub forma de grafice si

curbe de evolutie,se poate utiliza cu succes MSGraph.Chart.5.

EXEMPLU: -deschideti un proiect nou

-adaugati un control OLE

-setati proprietatea Class = MSGraph.Chart.5

-creati obiectul cu Create Embedded Object

-pentru resetarea valorilor utilizat optiunea Open

-Obiectul Microsoft Graph este insotit de un tabel (Data-

sheet) in care puteti introduce valorile dorite.Exista un meniu si

o bara cu butoane,cu numeroase optiuni pentru personalizarea formei

de reprezentare grafica a datelor.

-alegeti optiunile dorite si verificati aspectul in ferea-

stra denumita Chart.

-in final,inchideti fereastra Microsoft Graph si salvati

proiectul.

O parte dintre obiectele inserate vor fi insotite de un utiliar Help,

cu explicatii complete,in timp ce altele nu contin nici macar indicatiile

strict necesare pentru utilizarea corecta.Nu se pot formula sfaturi uni-

versal valabile.Fiecare programator va alege controalele preferate in

functie de experienta anterioara,hard-ul instalat si/sau necesitatile de

programare imediate.Eventualele probleme sunt in general identice cu cele

genrate de filele de tip DLL in general.Astfel,daca se utilizeaza simultan

prea multe obiecte de acest gen,exista posibilitatea de a suprasolicita

memoria de operare,de a crea conflicte de identificator sau diverse tipuri

se supraincarcare a functiilor si/sau operatorilor,sau exista risul de a

genera prea multe evenimente/unitatea de timp,astfel incat o parte dintre

evenimente nu mai pot fi executate in timp util.Ori de cate ori preluati

un astfel de obiect (clasa) de la o sursa oarecare,este bine sa studiati

cu atentie si documentatia aferenta (necesitati de hardware si software,


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