|
partajata in retea de catre un numar mare de utilizatori (Exemplu: un
|
səhifə | 6/10 | tarix | 03.11.2017 | ölçüsü | 0,98 Mb. | | #29921 |
| partajata in retea de catre un numar mare de utilizatori (Exemplu: un
browser de Internet de tip Google).
Este bine ca in etapa de design sa alegeti cu atentie fiecare obiect
de care aveti nevoie si sa exploatati la maximum potentialul fiecarui
obiect.Exemplu: in loc sa utilizati trei butoane diferite pentru a seta
proprietatile unei ferestre,puteti utiliza evenimentele Load,Click si
DblClick.Aplicatia va avea aceeasi functionalitate,dar va contine trei
obiecte mai putin,adica va prelucra de trei ori mai putine mesaje si va
functiona mai simplu si mai rapid.
Obiectele vizuale sunt foarte usor de adaugat.Este mult mai greu sa
incercati sa optimizati un program in care s-au adaugat prea multe astfel
de obiecte.Fiecare obiect inutil ocupa din spatiul de memorie de operare,
dar,ocupa spatiu si in memoria inscriptibila si este o sursa permaneta
de posibile erori sau interferente (mai ales atunci cand astfel de obiecte
sunt activate "in cascada" sau "automat",prin bucle de repetitie).
-43-
INTERFATA GRAFICA
Pentru acest capitol (si pentru intregul manual) am utilizat pentru
exemplificarea notiunilor,versiunea de program Visual Basic 5.0 Control
Creation Edition.Acest program,este simplu,eficient si gratuit.Poate fi
descarcat de pe Internet,de la adresa www.Microsoft.com si a fost special
conceput pentru a facilita crearea unor obiecte grafice,sau interfete
grafice de tip ActiveX (compatibile cu orice platforma Windows).Tot de la
aceasta adresa,puteti descarca si fila denumita "The Microsoft Visual
Basic Language Specification",in care este prezentat exhaustiv tot stan-
dardul de limbaj.Pentru orice nelamuriri,este bine sa consultati cu aten-
tie continutul acestei file.
Ce este o interfata ?
O interfata este un modul de program,asemanator cu o clasa,prin care se
stipuleaza un fel de contract intre programator (sau furnizorul de ser-
vicii) si utilizator (sau beneficiar).La fel ca si intr-o clasa,intr-o
interfata se definesc un set de proprietati,metode si evenimente,dar nu
se specifica si modul lor de implementare.Implementarea propriu zisa,se
va face prin intermediul unor clase.Clasele utilizate pentru implementa-
rea unei interfete,trebuie sa respecte contractul initial (forma ini-
tiala) asa cum a fost definit in interfata.Pentru a crea o interfata,se
poate utiliza instructiunea Interface....End Interface.Singurul reper
fix in alcatuirea unei interfete il reprezinta faptul ca dupa ce a fost
publicata,o intefata nu mai pooate fi modificata.Cel mai simplu exemplu
il reprezinta meniul Start din Windows,sau interfata grafica denumita
Desktop.Atat meniul Start cat si aplicatia Desktop pot fi reconfigurate
in nenumarate variante,dar vor pastra acelasi tip de functionalitate.
De exemplu,indiferant de culoarea de fond,aplicatia Desktop va lucra
exclusiv cu obiecte grafice de tip Folder sau Icon...etc.
Interfata grafica este un tip particular de interfata,in care toate
operatiile si comnenzile sunt executate prin intermediul unor obiecte gra-
fice,controlate cu ajutorul tastaturii,sau al idicatorului optic (mouse).
Interfetele grafice sunt utile mai ales atunci cand doriti sa combinati
un numar mai mare de obiecte fara legatura functionala intre ele,pentru
a realiza o anumita functionalitate globala.Cel mai simplu exemplu de
interfata il reprezinta un meniu cu multiselectie (Exemplu : meniul File).
Majoritatea programelor prezentau o forma oarecare de interfata grafica
cu utilizatorul.Visual Basic a dezvoltat acest concept la un nou nivel si
a permis utilizatorilor sa construiasca la randul lor interfete grafice
pentru programele si aplicatiile pe care le realizeaza.Cu ajutorul acestor
intefete,clientul nu trebuie decat sa apese un buton,sau sa completeze o
caseta de dialog,pentru a introduce sau pentru a obtine toate informatiile
dorite.Initial,acest concept a fost primit cu reticenta de catre progra-
matori,pe motiv ca orice utilizator care "invata sa puna un buton",va
umple ecranul de butoane,doar de dragul de a face ceva "complex".Aceasta
temere nu a fost indreptatita,si treptat interfata grafica de tip Windows
a devenit un standard pentru majoritatea aplicatiilor si programelor.
In capitolul urmator,se vor prezenta simplist cateva notiuni elementare
necesare pentru realizarea unei astfel de interfete grafice.Subiectul nu
poate fi epuizat in cateva pagini.Cei interesati,vor putea studia alte
manuale,sau chiar literatura de specialitate.Acest manual,nu doreste decat
sa schiteze scheletul pe care urmeaza sa va construiti baza de cunostiinte.
-44-
Asadar,o interfata este un set de reguli fixe,pe care programatorul se
angajeaza sa le respecte in toate versiunile ulterioare ale programului
sau.Ca rezultat,utilizatorul se va familiariza cu un anumit mediu de ope-
rare,sau isi va forma un set de tabieturi si automatisme.O interfata gra-
fica,este un set de imagini grafice (controale),cu ajutorul carora se face
intemedierea dintre utilizator si masina.
Pentru a realiza o interfata,este nevoie de un obiect de tip container,
in care se vor grupa toate obiectele necesare pentru a realiza o anumita
functionalitate.Cel mai simplu obiect de tip container este fereastra de
tip Windows si este utilizat in majoritatea aplicatiilor.Fereastra de
tip Windows,utilizata pentru a crea o interfata este insa putin mai spe-
ciala,prin faptul ca trebuie sa respecte setul initial de reguli,sau de
controale.Incercarea de a modifica aspectul unei interfete grafice,se sol-
deaza cu un mesaj de eroare de genul "Interfata grafica nu permite....").
Programul Visual Basic 5.0 Control Creation Edition are o interfata
grafica formata dintr-o fereastra principala,dotata cu un meniu complex,
si un set de obiecte secundare de tip Toolbar,in care sunt grupate cateva
seturi de obiecte grafice (controale).In ansamblul sau,interfata grafica
poate fi privita ca o planseta de proiectare,pe care utilizatorul o folo-
seste pentru designul aplicatiilor sale.Interfata este astfel conceputa
incat utilizatorul sa poata avea acces cat mai rapid la toate faciliatile
oferite de mediul de programare Visual Basic.Practic,este suficient un
click de mouse,pentru a deschide orice meniu,sau pentru a adauga in pro-
iect un modul nou sau un anumit control.
Interfata grafica este compartimentata in mai multe ferestre secundare,
prin care utilizatorul poate avea acces la anumite functionalitati.Este
destul de putin probabil ca programatorul sa apeleze toate aceste fecili-
tati simultan.Din acest motiv,se utilizeaza meniul View pentru a selecta
doar ferestrele necesare la un anumit moment.In functie de necesitatile de
moment,sau in functie de tabieturi,se pot deschide din meniul View urma-
toarele ferestre utilitare: Code,Object,Object Browser,Immediate Window,
Locals Window,Watch Window,Project Explorer,Properties Window,Form Layout
Window,Toolbox,Color Palette si Toolbars (Debug,Edit,Form Editor,Standard
si Customize).Prezentarea exhaustiva a fiecareia dintre aceste ferestre
depaseste scopul acestui manual (consultati manualul Help).Este bine de
stiut insa,ca fiecare dintre aceste ferestre ocupa din memoria de operare.
Nu este bine sa deschideti simultan,decat acele ferestre din care extra-
geti date relevante,sau cu ajutorul carora controlati procesul de construc-
tie a proiectului.In momentul in care o fereastra nu este utila,este mai
bine sa fie inchisa (Exemplu: nu are rost sa deschideti fereastra Watch in
etapa de design a programului.Aceasta fereastra este utila doar in etapa
de verificare si control sau in etapa de depanare).Si celelalte meniuri
pot contine ferestre utile.De exemplu,din meniul Project puteti utiliza
optiunile Add Form,Add MDI Form,Add Module,Add Class Module,Add User Con-
trol...etc.,pentru a putea adauga in proiect module intregi sau componente
predefinite.
In alti termeni,interfata grafica cu utilizatorul este un fel de pupi-
tru de comanda.Nu trebuie decat sa activati anumite resorturi,sau sa apa-
sati cateva butoane si programul va incepe sa prinda contur.Daca sunteti
incepator,este mai bine sa va formati de la bun inceput automatisme de
lucru cat mai corecte (mai tarziu vor fi imposibil de corectat).
-45-
Inainte de a incepe sa proiectati o interfata grafica,este bine sa va
faceti un mic plan de lucru.Fixati obiectivele,alegeti obiectele si meto-
dele de care aveti nevoie,apoi treceti la implementarea lor.Pentru inceput
sa presupunem ca doriti sa configurati fereastra de start,astfel incat sa
corespunda necesitatilor d-voastra.Exista doua solutii: -fereastra poate
fi configurata in etapa de design,sau poate fi configurata activ in etapa
de executie a programului.Pentru prima varianta,editati urmatorul exemplu:
EXEMPLU: - deschideti un nou proiect de tip Standard.exe
- in fereastra Form1,executati un click drept si alegeti optiu-
nea Properties.
Se va deschide fereastra Properties in care sunt listate toate proprieta-
tile si metodele ferestrei Form1.Mai mult decat atat,proprietatile si
metodele pot fi sortate fie in ordine alfabetica,fie grupate pe categorii
(selectati meniul Categorized).Sa presupunem ca doriti sa schimbati culoa-
rea de fond.Alegeti din lista proprietatea BackColor si executati un click
pe butonul de derulare din extremitatea dreapta.Se va deschide o mica fe-
reastra de dialog,in care puteti selecta una dintre variantele de fereas-
tra de tip sistem (Exemplu: Highlight Text) sau puteti activa meniul de-
numit Palette,pentru a alege o culoare oarecare.Selectati cu un click de
mouse optiunea dorita.
Daca doriti sa schimbati titlul ferestrei,alegeti proprietatea Caption
si introduceti textul dorit (Exemplu: Fereastra Principala).
Pentru a schimba dimensiunile ferestrei,puteti utiliza proprietatile
Height si Width.De exemplu inlocuiti Height = 3600 cu 5000 si Width = 4800
cu 7000.
Pentru a verifica aspectul ferestrei in timpul executiei,puteti lansa
fereastra cu Run si Start,sau puteti utiliza combinatia de taste Ctrl+F5
(metoda shortcut).
Daca doriti ca fereastra sa se deschida de fiecare data intr-o anumita
pozitie,puteti utiliza proprietatile Top si Left.De exemplu,setati ambele
proprietati la valoarea 1000.
Fereastra implicita este deplasabila.In timpul executiei,daca trageti
cu butonul mouse apasat de bara de titlu,fereastra se va deplasa la locul
indicat.Pentru ca fereastra sa nu mai poata fi deplasata in timpul execu-
tiei,puteti utiliza proprietatea Moveable.Setati Moveable = False.
In mod similar,puteti utiliza oricare dintre celelalte proprietati,
pentru a obtine efectul dorit.Prin setarea proprietatilor in etapa de de-
sign,se economiseste o buna parte din efort si din liniile de cod desti-
nate acestui scop.In plus,va puteti asigura ca utilizatorul nu va putea
face nici o eroare "accidentala" datorata necunoasterii sau neatentiei.
Printre altele,interfata grafica limiteaza mijloacele de interventie ale
utilizatorului la un set bine delimitat de actiuni,si anume cele pe care
doriti d-voastra sa le poata efectua.Fiecare control,trebuie sa fie foarte
bine gandit,astfel incat programul sa functioneze la parametrii maximi,iar
utilizatorul sa nu trebuiasca sa execute decat un numar limitat de opera-
tii.Pentru fiecare operatie necesara,se va alege controlul cel mai simplu,
cu consum minim de memorie si cu maximum de eficienta.
Pentru operatiile simple,cea mai eficienta metoda este sa adaugati un
meniu de optiuni.Meniurile ocupa putin spatiu grafic,nu consuma din memo-
ria de operare si permit introducerea unui set destul de mare de operatii
cu un efort minim pentru utilizator (executa un click pe optiune).
-46-
Sa presupunem ca doriti ca utilizatorul sa poata schimba culoarea si
dimensiunea ferestrei in timpul executiei.Pentru acest scop,se poate uti-
liza un meniu format din optiunea Culori,cu submeniurile :Rosu,Verde si
Albastru si din optiunea Marime,cu submeniurile: Mareste si Micsoreaza.
Pentru a crea un meniu,Visual Basic 5.0 ofera un instrument grafic
extrem de usor de utilizat,localizat in meniul Tools ( Menu Editor).
EXEMPLU: - deschideti un nou proiect (sau continuati cu cel anterior)
-din meniul Tools,alegeti optiunea Menu Editor ( sau din fe-
reastra,executati un click drept si alegeti Menu Editor)
Se va deschide fereastra Menu Editor.Pentru a introduce primul meniu,
introduceti textul Culori in caseta Caption.Apoi adaugati un nume in
caseta Name (Exemplu mnuCulori).Acest nume va fi utilizat ca identifica-
tor,ori de cate ori doriti sa apelati meniul printr-o linie de cod.Pentru
ca sa atraga atentia ca este vorba despre un meniu,este bine sa utilizati
si prefixul "mnu" inaintea numelui propriu zis.In acest fel,in etapa de
depanare,prefixul va atrage atentia asupra tipului de control utilizat.
In continuare,adaugati si un numar de indexare in caseta denumita Index.
(De exemplu: 1).Pentru a trece la meniul urmator apasati butonul Next.
Pentru ca meniul sa contina si submeniuri este necesar ca numele sub-
meniului sa fie precedat de patru puncte.Pentru acest scop,utilizati bu-
tonul cu sageata orientata spre dreapta (situat la stanga butonului Next)
si urmariti modul in care se construieste meniul in caseta de dialog si-
tuata sub butonul Next.Daca un aparut cele patru puncte,puteti introduce
numele primului submeniu.Introduceti in Caption textul:Rosu,in Name numele
meniului: mnuRosu si in Index numarul de indexare: 3.
Acum puteti verifica meniul.Apasati butonul OK.In fereastra apare doar
meniul Culori,iar daca executati un click pe acest meniu se va afisa si
submeniul Rosu.
Pentru ca submeniul sa execute o operatie oarecare,trebuie sa editati
o procedura de raspuns la meniul respectiv.Executati un click pe Culori si
apoi un click pe submeniul Rosu.Se va deschide automat fereastra View Code
in care este deja inclus numele procedurii:
Private Sub mnuRosu_Click(Index As Integer)
End Sub
Pentru ca fereastra sa primeasca culoarea de fond ROSU,completati proce-
dura astfel:
Private Sub mnuRosu_Click(Index As Integer)
Form1.BackColor = RGB(250,0,0)
End Sub
Acum puteti verifica primul submeniu.Apasati Ctrl+F5 si apoi selectati
meniul Culori si respectiv Rosu.Fereastra se va colora in rosu.
Pentru a adauga si restul de submeniuri,deschideti din nou fereastra
Menu Editor.Selectati submeniul Rosu si apoi apasati butonul Next.Apasati
sageata spre dreapta pentru a adauga cele patru puncte (intrarea in sub-
meniu) si apoi editati casetele astfel: Caption = Verde ,Name = mnuVerde
si Index = 4.Apasati Next,sageata spre dreapta si adaugati urmatorul sub-
meniu astfel: Caption = Albastru, Name = mnuAlbastru si Index = 5.
Pentru a verifica meniul,apasati butonul OK.In mod normal,meniul Culori
va contine cele trei submeniuri: Rosu,Verde si Albastru.Ori de cate ori
selectati meniul Culori se vor activa cele trei submeniuri.
-47-
Pentru a atribui cate o procedura,selectati cu mouse Verde si editati
urmatoarea procedura:
Private Sub mnuVerde_Click(Index As Integer)
Form1.BackColor = RGB(0,250,0)
End Sub
Apoi selectati submeniul Albastru si editati urmatoarea procedura:
Private Sub mnuAlbastru_Click(Index As Integer)
Form1.BackColor = RGB(0,0,250)
End Sub
Verificati meniul cu Ctrl+ F5.In mod normal,trebuie sa puteti schimba
culoarea de fond in cele trei variante: rosu,verde sau albastru.
Daca doriti sa puteti redimensiona fereastra cu ajutorul unui alt meniu
reveniti la fereastra de design,deschideti fereastra Menu Editor si apoi
selectati submeniul Albastru si apasati butonul Next.
Pentru a crea un meniu nou,in caseta de control (cea de jos) trebuie ca
numele meniului sa nu fie precedat de cele patru puncte.Daca au fost
adaugate automat,apsati sageata spre stanga pentru a le sterge.Apoi,in
caseta Caption introduceti numele noului meniu: Marime,in Name: mnuMarime
iar in Index setati valoarea 2.Pentru a adauga cele doua submeniuri,apa-
sati butonul Next,apoi sageata spre dreapta si editati casetele:
Caption = Mareste,Name = mnuMareste si Index = 7.
Apasati din nou Next,sageata spre dreapta si completati casetele:
Caption = Micsoreaza,Name = mnuMicsoareaza si Index = 8
Inchideti fereastra Menu Editor cu OK.Pentru a adauga cele doua proceduri,
selectati pe rand cele doua submeniuri si editati :
Private Sub mnuMareste_Click(Index As Integer)
Form1.Width = Form1.Width + 500
Form1.Height = Form1.Height + 300
End Sub
si respectiv:
Private Sub mnuMicsoreaza_Click(Index As Integer)
Form1.Width = Form1.Width - 500
Form1.Height = Form1.Height - 300
End Sub
Verificati fereastra cu Ctrl + F5.In mod normal trebuie sa puteti schimba
culoarea de fond sau sa puteti redimensiona fereastra dupa bunul plac.
Selectati fiecare submeniu de mai multe ori.Daca toate optiunile sunt
functionale puteti salva proiectul.
Acelasi rezultat se putea obtine si utilizand cinci butoane.Pentru
fiecare buton se putea atribui cate una dintre operatiile din meniu.Dar,
se pot observa urmatoarele diferente:
1.-cele cinci butoane ocupa mult mai mult spatiu grafic in fereastra
2.-cele cinci butoane ocupa mult mai mult spatiu de memorie,atat in memo-
ria de operare cat si in cea de arhivare.
3.-cele cinci butoane prelucreaza un numar mult mai mare de mesaje inutile
crescand asfel numarul de operatii executate de procesor pentru a rea-
liza aceeasi functionalitate (programul va functiona mai incet).
Pentru o aplicatie mica,aceste diferente sunt nesemnificative,dar intr-un
program complex,diferentele incep sa fie din ce in ce mai semnificative.
Meniurile sunt un instrument extrem de eficient.Utilizat cu creativitate
nu meniu poate prelua majoritatea operatiilor efectuate de utilizator.
-48-
Instrumentul Menu Editor permite si adaugarea unor combinatii de taste
de tip "shortcut" cu ajutorul carora un meniu oarecare poate fi apelat
de la tastatura.Nu este necesara nici o linie de cod,ci se poate alege
o solutie prestabilita,cu ajutorul casetei denumita Shortcut.
EXEMPLU: -deschideti din nou proiectul precedent si fereastra Menu Editor
In caseta de afisaj,alegeti meniul ....Rosu si apoi apasati butonul de
derulare din caseta Shortcut si alegeti varianta Ctrl+ R.In mod similar.
puteti adauga pentru ....Verde combinatia Ctrl + V si pentru ....Albastru
combinatia Ctrl + A.
In caseta de afisaj,meniul va arata astfel:
Culori
....Rosu Ctrl+R
....Verde Ctrl+V
....Albastru Ctrl+A
Marime
....Mareste
....Micsoreaza
Inchideti fereastra Menu Editor apasand butonul OK si apoi verificati
aplicatia cu Ctrl+F5.Incercati cele trei combinatii de taste.Observati
ca daca utilizati meniul,cele trei combinatii de taste sunt afisate si
in meniu.
Tot fereastra Menu Editor se va utiliza si pentru a modifica un meniu.
De exemplu,daca doriti sa adaugati un submeniu,la unul dintre submeniurile
existente,va trebui sa inserati noul submeniu precedat de opt puncte (apa-
Dostları ilə paylaş: |
|
|