|
-setati proprietatea Height la valoarea 615
|
səhifə | 9/10 | tarix | 03.11.2017 | ölçüsü | 0,98 Mb. | | #29921 |
| -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,
Dostları ilə paylaş: |
|
|