Grafica si multimedia în Visual Basic
Metode grafice Vs. Controale grafice
Exista doua moduri principale de a desena
grafica în Visual Basic: utilizând metodele grafice sau utilizând
controalele grafice. Metodele grafice merg mai bine acolo unde utilizând
controalele grafice ar fi necesara mai multa munca. Spre exemplu
trasarea unei grele de linii la un grafic ar necesita un tablou de controale
linie si, doar câteva linii de cod daca s-ar utiliza metoda
grafica Line. De asemenea când doriti ca un efect sa apara
temporar, puteti scrie cod care sa genereze acel efect în loc sa
folositi controale grafice. Metodele grafice ofera anumite efecte
care nu sunt disponibile la controalele grafice. Metodele grafice sunt
preferate de programatori când doresc sa creeze grafica în timpul
executiei programului iar controalele grafice sunt preferate când la crearea
elementelor grafice în faza de proiectare.
Sistemul de coordonate în
Visu 19419h75t al Basic
Deoarece veti desena grafica în interiorul
formelor si al controalelor (cutii cu poze, în special) trebuie sa
stiti unitatile de masura si coordonatele cu
care veti lucra. Sistemul de
coordonate în Visual Basic îsi are originea (0,0) în coltul stânga
sus. Puctele
sunt de coordonate (x,y); x este pe abscisa , y pe ordonata.
Retineti ca ca y ia valori pozitive în jos pe axa. Unitatea
de masura implicita este twips (1/1440 dintr-un inch).
Aceasta unitate a fost aleasa astfel încât sa fie
independenta de dispozitivul pe care se face afisarea (monitor,
imprimanta etc.) dar daca nu vreti sa lucrati cu
twips, puteti sa o schimbati cu alte unitati de
masura mai familiare (milimetri, centimetri etc.); puteti chiar
sa va definiti propria unitate de masura.
Redesenarea graficii în
Windows: AutoRedraw si Paint
Unul dintre cele mai importante aspecte ale Visual Basic
este faptul ofera posibilitatea ca formele sa controalele sa se redeseneze
singure dupa necesitati, prin setarea proprietatii
AutoRedraw cu valoarea True. Visual Basic pastreaza în memorie o
copie a modului de afisare a ferestrei pe ecran si reînoieste
imaginea acesteia pe ecran de câte ori este nevoie. Astefel este rezolvata
una din marile probleme ale programatorilor Windows într-un mod foarte elegant.
Totusi stabilire proprietatii AutoRedraw la valoarea True va
determina folosirea unor resurse însemnate în special memorie. Daca nu
doriti acest lucru setati AutoRedraw pe False si folositi
evenimentul Paint pentru a redesena grafica deoarece acest eveniment se
declanseaza ori de câte ori o forma sau un control este desenat
sau redesenat.
stergerea zonei de
desenare
Pentru a curata zona de desenare folositi metoda
Cls care redeseneaza forma sau controlul pastrând aceeasi
culoare de fundal.
Stabilirea culorilor
Voi prezenta câteva proprietati cu ajutorul carora
se pot stabili culorile diferitelor obiecte:
- BackColor - culoarea fundalului uni control sau al unei forme;
- ForeColor - culoarea folosita la desenarea figurilor si textelor;
- BorderColor - culoarea chenarului;
- FillColor - culoarea de completarea a spatiului liber al unei figuri.
În Visual Basic exista patru modalitati
pentru de stabilire culorii:
- utilizând functia RGB
- utilizând functia QBColor pentru a alege una din cele 16 culori
QuickBasic
- utilizarea unei constante standard definita de Visual Basic;
- introducerea unei valori ce reprezinta o anumita culoare.
Cel mai adesea pentru a specifica o anumita culoare
veti folosi functia RGB. Ia accepta trei parametri de tip Byte
fiecare dintre ei specificând cantitatea de rosu, verde si albastru
ce va fi continuta de culoarea dorita. Exemple:
RGB(255,0,0) - rosu;
RGB(0,255,0) - verde;
RGB(0,0,255) - albastru;
RGB(0,0,0) - negru;
RGB(255,255,255) - alb;
RGB(128,128,128) - gri;
Functia QBColor primeste ca parametru de intrare
unul numar între 0 si 15 i returneaza una din urmatoarele
culori:
. Black-0
. Blue-1
. Green-2
. Cyan-3
. Red-4
. Magenta-5
. Yellow-6
. White-7
. Gray-8
. Light blue-9
. Light green-10
. Light cyan-11
. Light red-12
. Light magenta-13
. Light yellow-14
. Light white-15
De asemenea, pentru a secifica o anumita culoare
puteti folosi una din multiplele constante standard definite de Visual
Basic.
Puteti specifica o anumita culoare în mod direct printr-un întreg de
tip Long. Intervalul de valori în care sunt situate toate culorile este de la 0
la 16777215 (&HFFFFFF&)
Afisarea textul
Puteti afisa text în interiorul formelor sau la
casetelor cu poza cu ajutorul metodei Print:
Sintaxa:
[obiect.] Print
[listaiesiri] [ ]
Coltul stânga sus al textului va aparea la locatia
determinata de proprietatile CurrentX si CurrentY.
Daca doriti sa afisati mai multe elemente pe linii
diferite separati-le cu virgula. Daca doriti sa
afisati mai multe elemente pe aceeasi linie separati-le cu
punct si virgula.
De asemenea în lucrul cu textele puteti formata textul sub diferite
aspecte stabilind valori pentru numele, stilul, marimea fontului etc.
Desenarea unui dreptunghi
Desenarea unui dreptunghi se face folosind metoda Line a
formei sau a cutiei cu poza.
Sintaxa:
obiect.Line [Step] (x1,y1) [Step] (x2,y2), [color], [B], [F]
- step- cuvânt cheie indicând faptul caci coordonatele punctului de start
sunt relative la pozitia curenta a graficului data de
proprietatile CurrentX si CurrentY;
- x1,y1 - valori de tip Single indicând coordonatele punctului de start ale
liniei;
- step - cuvânt cheie indicând faptul caci coordonatele punctului de
sfârsit sunt relative la punctul de început
- x2,y2 - valori de tip Single ce indica coordonatele punctului de
sfârsit;
- color - intreg de tip Long ce specifica culoarea de desenare;
- B- daca este inclusa optiunea se va desena un dreptunghi ce va
avea ca diagonala dreapta determinata de (x1,y1)- (x2,y2);
- F - daca este folosita optiunea B atunci folosirea
optiunii F va determina colorarea interiorului dreptunghiului cu culoarea
de desenare
Exemplu:
Adaugati un buton de comanda la o forma si
introduceti codul:
Private Sub Command1_Click()
Line (200, 150)-(2000, 3000), , B
End Sub
La apasarea butonului se va desena un dreptunghi.
Desenarea cercurilor, a
arcelor de cerc si a elipselor
Desenarea cercurilor a arcelor de cerc si a elipselor
se realizeaza folosind metoda Circles a formei sau a casetei cu poza.
Sintaxa:
Obiect.Circle [Step] (x,y), radius, [color,[start, end, [aspect]]]
- x,y - coordonatele centrului cercului, elipsei sau arcului;
- radius - valoare de tip Single reprezentând raza cercului ,elipsei sau
arcului;
- color - întreg de tip Long indicând culoarea RGB cu care va fi desenat
cercul;
- start, end - Valori de tip Single. Se utilizeaza la desenarea arcelor de
cerc si a elipselor specificând (în radiani) pozitiile de început
si de sfârsit ale arcului. Intervalul devalori , pentru amândoua, este de la
-2Pi radiani la 2 Pi radiani. Valoarea implicita pentru start este 0 iar
pentru end 2Pi radiani.
- aspect - valoare de tip Single precizân modul în care va apara elipsa.
Valoarea implicita este 1.0 pentru care se deseneaza un cerc.
Desenarea punctelor într-o forma sau într-o caseta
cu poza se realizeaza cu ajutorul metodei Pset. Sintaxa:
obiect.PSet [Step] (x,y), [color]
- x,y - valori de tip Single indicând coordonatele punctului ce va fi desenat;
- color - întreg de tip Long desemnând culoarea cu care va fi desenat punctul.
Voi prezenta în continuare un program care utilizând calule
matematice si folosind metoda Pset a unei forme creaza o
animatie grafica destul de interesanta.
Deschideti un proiect nou. Stabiliti urmatoarele
proprietati pentru forma:
Name
frmDrawShape
Height 6285
Width 6945
Adaugati la forma un control Timer numit tmrTimer si
setati proprietatea Interval la valoarea 10. Adaugati apoi urmatorul cod în
fereastra de cod:
Option Explicit
Private Sub DrawShape()
Dim x As Single, y As Single
Dim totalRadians As Single, r As Single
Dim a As Single, theta As Single
Call Randomize
Scale (3, -3)-(-3, 3)
totalRadians = 25 * Atn(1)
ForeColor = QBColor(Rnd() * 15)
a = 3 * Rnd()
For theta = 0 To totalRadians Step 0.01
r = a * Sin(10 * theta)
x = r * Cos(theta)
y = r * Sin(theta)
PSet (x, y)
Next theta
End Sub
Private Sub tmrTimer_Timer()
Call DrawShape
End Sub
Distribuirea aplicatiei
Deoarece aplicatiile
Visual Basic îmbraca diferite forme ce pot fi executate pe diverse
platforme, inclusiv Internet, Visual Basic va pune la dispozitie un
instrument deosebit de important care Package and Deployment Wizard va va
ajuta sa creati pachete cu ajutorul carora sa
distribuiti aplicatia.
Package and Deployment Wizard este un program usor de folosit; dupa
introducerea câtorva informatii referitoare la aplicatie si
modul de distributie programul va genera câteva fisiere pe care le
puteti distribui celor care doresc sa-si instalez aplicatia
dumneavoastra.
|