Visual Foxpro 0 abc-doar


proprietati.In mod curent se utilizeaza pentru a seta o anumita proprie-



Yüklə 1,41 Mb.
səhifə4/17
tarix17.03.2018
ölçüsü1,41 Mb.
#45490
1   2   3   4   5   6   7   8   9   ...   17

proprietati.In mod curent se utilizeaza pentru a seta o anumita proprie-

tate,sau pentru a alege o optiune logica ADEVARAT sau FALS.De exemplu,

intr-un formular se poate utiliza pentru a specifica o anumita conditie

gen: casatorit sau necasatorit,elev sau student etc.

Acest obiect ocupa putin loc in interfata grafica,poate fi utilizat in

timpul executiei sau poate fi ignorat cu desavarsire.Obiectul prezinta

doua stiluri de prezentare diferite.Stilul standard,apare ca o caseta

in care se poate bifa o pipa,iar stilul grafic apare ca un buton oarecare

la care se pot utiliza pictograme,atat pentru situatia in care butonul

este apasat(selectat) cat si pentru situatia in care butonul este liber.

EXEMPLU: In Form Designer adaugati un obiect de tip Check Box.

Pentru ca butonul sa controleze o stare oarecare,adaugati si un camp

Label si dimensiunati obiectul pentru o reprezentare optima.

Apoi selectati obiectul Check1,deschideti fereastra Properties,executati

un dublu click pe Click Event si editati urmatoarea procedura:

DO CASE

CASE This.Value = 1

ThisForm.Label1.Caption = "Butonul este selectat"

CASE This.Value = 0

ThisForm.Label1.Caption = "Butonul este neselectat"

ENDCASE

Apoi alegeti proprietatea Caption si scrieti textul dorit(APASA BUTONUL).

Verificati fereastra cu Run Form.

In mod normal,textul din Label1 se va modifica dupa cum caseta Check1

este sau nu este selectata.Pentru ca obiectul sa fie reprezentat sub forma

de buton,alegeti proprietatea Style si setati valoarea 1 - Graphical,apoi

alegeti proprietatea Picture si adaugati o pictograma(apasati pe butonul

cu trei puncte si selectati o fila cu extensia .bmp).Daca doriti ca butonul

sa afiseze o imagine diferita atunci cand este apasat,selectati proprie-

tatea DownPicture si adaugati o noua pictograma.

Pentru a realiza imagini de tip .bmp proprii,puteti utiliza utilitarul

Imageedit din directorul Imageedit.Pentru acest scop,parasiti programul

Microsoft Visual Foxpro si deschideti din Windows Vpf/Imageedit.Din File,

alegeti New,apoi Bitmap,selectati dimensiunile si culorile,apoi desenati

imaginea dorita si salvati fila in directorul Vfp(pentru a fi mai usor de

preluat in viitor).Apoi redeschideti proiectul,alegeti din Forms fereastra

dorita si apasati butonul Modify.In Form Designer,deschideti fereastra

Properties,selectati obiectul Check Box de tip grafic,alegeti Picture si

selectati imaginea .bmp proaspat realizata.Acum butonul va avea aspectul

dorit.

Obiectul Check Box poate fi si inactivat complet,cu ajutorul proprie-

tatii Enabled.In plus,proprietatea Value accepta si valoarea 2,care semni-

fica faptul ca starea obiectului este nedeterminata(fata de 0=neselectat

si 1=selectat).Pentru obiectele de tip Check Box,proprietatea Value accepta

si valori logice cu semnificatia .F. = 0,.T. = 1 si NULL = 2.

Pentru desemnarea obiectului,se prefera pointerul This,iar pentru desem-

narea ferestrei curente se utilizeaza pointerul ThisForm,desi se pot

utiliza si formulele explicite de gen Form1.Check1.Caption...etc.


-19- FORM - COMBO BOX

Pentru a realiza o interfata grafica interactiva,frecvent se apeleaza

la obiecte de tip ComboBox.Aceste obiecte combina cate un obiect de tip

TextBox cu un obiect de tip ListBox,astfel incat utilizatorul poate sa

introduca un text oarecare in momentul executiei,sau poate sa aleaga un

text preexistent in lista de optiuni a obiectului.Mai mult,lista de

optiuni poate fi completata,redusa,filtrata sau modificata activ,in

timpul executiei.Astfel,este posibil ca in aceeasi interfata grafica,

utilizatorii sa poata selecta grupuri diferite de date,in functie de o

parola de acces sau un alt criteriu oarecare de selectare a metodei de

organizare al listei de optiuni din ListBox.Fiecare element din lista va

purta un numar de ordine si va putea fi sortat in functie de un anumit

criteriu,dar,este recomandabil ca lista sa nu contina mai mult de 60 de

date distincte.Daca este necesar sa utilizati grupuri mai mare de date,

este recomandabil sa arhivati aceste date in tabele de tip .dbf si sa

utilizati obiecte de tip ComboBox pentru a prelua doar o parte dintre

acestea,in functie de unul sau mai multe criterii de filtrare ( nu se

pot utiliza obiectele de tip ComboBox pentru a arhiva volume mari de

informatie).

Pentru a schimba formatul de prezentare a datelor,se poate utiliza

proprietatea Format.De exemplu,daca se utilizeaza doar date de tip

caracter,se poate seta proprietatea Format la valoarea ! (semnul excla-

marii) pentru a transforma toate caracterele in majuscule.

Pentru a configura si verifica un control de tip ComboBox,se poate

utiliza un algoritm secvential introdus intr-o fila de cod,sau se poate

utiliza utilitarul Builder din Form Designer.

EXEMPLU: din Project Manager alegeti Forms,New si New Form.

In fereastra Form Designer adaugati un obiect de tip ComboBox din bara

de controale Form Controls,apoi executati un click drept de mouse si

alegeti optiunea Builder.

Se va deschide fereastra Combo Box Builder.

Pentru a forma o lista de optiuni,cu date introduse de la tastatura,

alegeti in caseta "Fill the list with:" optiunea "Data entered by hand",

apoi alegeti numarul de coloane si introduceti datele dorite.Atentie:

doar prima coloana va contine datele semnificative,cu care se poate opera

activ in obiectul final,restul coloanelor vor contine doar date orienta-

tive,ce pot fi afisate in momentul selectiei dar nu pot fi preluate din

obiectul TextBox.Introduceti datele astfel incat prima coloana sa contina

datele pe care doriti sa le preluati,iar restul coloanelor sa contina

date orientative pentru ca selectia sa fie cat mai discriminativa(Exemplu:

daca lista contine obiecte de acelasi fel,cea de a doua coloana poate

contine criteriul de discriminare dintre doua sau mai multe obiecte iden-

tice.Dupa ce lista este completa (nu mai mult de 60 de elemente),puteti

modifica aspectul obiectului deschizand meniurile Style si Layout(dar

este recomandabil sa pastrati valorile implicite).Daca inlocuiti stilul

Drop-down combo prin Drop-down list,datele selectate nu vor mai putea fi

preluate cu proprietatea Text,deoarece obiectul TextBox nu va mai putea

fi utilizat (practic ComboBox devine un obiect de tip ListBox).

In meniul Layout puteti modifica largimea campurilor afisate in mo-

mentul selectiei (trageti cu butonul mouse apsat de marginea din dreapta

a butonului situat in capul coloanei respective.

Dupa ce obtineti aspectul dorit,inchideti fereastra Combo Box Builder.


-20-

Pentru ca datele introduse in ComboBox sa poata fi utilizate activ,

este necesar sa utilizati una dintre metodele specializate.Cel mai practic

este sa apelati la metoda InteractiveChange Event,care preia orice mo-

dificare a datelor din obiect.De exemplu,pentru a transfera datele din

ComboBox intr-un obiect de tip Label,adaugati un obiect de tip Label,

apoi executati in fereastra Properties un dublu click pe metoda Interacti-

veChange Event(din Combo1) si editati textul:

ThisForm.Label1.Caption = ThisForm.Combo1.Text

Inchideti fereastra Combo1.InteractiveChange si verificati fereastra cu

Run Form.

Observati ca orice caracter introdus de la tastatura in caseta de

editare,va fi transcris instantaneu in obiectul de tip Label.Pentru a

transfera una dintre optiunile prestabilite,apasati butonul de derulare

si executati un click pe optiunea dorita.

Daca doriti ca lista de optiuni sa se schimbe in functie de un criteriu

oarecare,alegeti metoda Init Event si reconfigurati lista cu ajutorul

metodelor Clear si AddListItem,sau utilizati metoda ProgramaticChange

Event.

Lista de optiuni prestabilite poate fi preluata si dintr-un tabel de

tip .dbf,sau dintr-o arie de date.Pentru a exemplifica acest mod de imple-

mentare,adaugati inca un obiect de tip ComboBox,executati un click drept

si deschideti fereastra Combo Box Builder.In caseta "Fill the list with:"

selectati de aceasta data optiunea "Fields from a table or a view".

In caseta "Databases and tables" introduceti baza de date si/sau tabelul

dorit (Exemplu: alegeti fila Arhiva1.dbf).Apoi alegeti campurile de

care aveti nevoie din caseta "Available fields" si utilizati butonul cu

sageata spre dreapta pentru a transfera campurile utile in caseta "Selec-

ted fields".Pentru a observa rezultatul selectiei,alegeti meniul Layout.

La nevoie modificati dimensiunea coloanelor.

Pentru datele preluate dintr-un tabel,se poate utiliza si meniul

Value.Acest meniu permite ca datele selectate sa fie transcrise automat

intr-o alta coloana,sau chiar intr-un alt tabel.Alegeti in prima caseta

coloana pe care doriti sa o preluati in momentul selectiei si in cea

de a doua caseta ("Field name") alegeti coloana si tabelul in care doriti

sa transferati datele (se poate utiliza si butonul cu trei puncte).

(EXEMPLU: Biblioteca.Autor ).In final,confirmati cu OK.

Pentru a transfera datele selectate in obiectul Label,redefiniti metoda

InteractiveChange Event astfel:

ThisForm.Label1.Caption = ThisForm.Combo2.Text

Inchideti fereastra Combo2.InteractiveChange si verificati fereastra cu

Run Form.Apoi salvati fereastra si inchideti Project Manager.

Acum,se pot utiliza ambele obiecte de tip ComboBox pentru a transfera

date in Label1,iar obiectul Combo2 se poate utiliza si pentru a actualiza

automat o alta baza de date(De exemplu: coloana Autor din biblioteca.dbf).

Studiati cu atentie toate proprietatile si metodele obiectului.Prin

combinarea acestora se pot obtine un numar destul de mare de solutii

tehnice prin care transferul de date dintre doua tabele,sau actualizarea

automata a unui tabel sa se poata face cu un simplu click de mouse.Se pot

adauga o serie de conditii de filtrare si/sau verificare automata a date-

lor,astfel incat transferul sa nu fie efectuat decat daca datele selectate

respecta o anumita conditie (de exemplu daca sunt unice).


-21- FORM - LIST BOX si SPINNER

Un obiect asemanator cu ComboBox este ListBox.Se utilizeaza exclusiv

pentru a alege date prestabilite,dintr-o lista de optiuni,deoarece,spre

deosebire de ComboBox,acest control nu are si o caseta de tip TextBox.

Prin urmare,in timpul executiei nu se pot introduce date de la tastatura.

Acest obiect se utilizeaza preferential pentru a impiedeca orice eroare

posibila,generata de neglijenta in editare a utilizatorului.Se compun

liste cu optiuni(nu mai lungi de 60 de elemente),dintre care utilizatorul

va putea alege varianta dorita.Se programeaza si implemeneteaza la fel

ca obiectul ComboBox (din Form Designer cu Builder).(vezi ComboBox)

Un alt obiect util poarta numele de Spinner (roata) si se utilizeaza

pentru a putea incrementa sau decrementa valoarea unei variabile.Se

prezinta sub forma unei casete de editare cu doua butoane de derulare;

-cel cu sageata in sus incrementeaza valoarea,iar cel cu sageata in jos

decrementeaza valoarea Value.Pentru incrementare se utilizeaza implicit

valoarea 1,dar se poate utiliza orice alta valoare intrega sau fractionara

prin setarea proprietatii Increment.

Obiectul prezinta si doua proprietati; Format si InitMask ce se pot

utiliza pentru a determina formatul de prezentare a datelor.Obiectele de

tip Spinner se utilizeaza in interfata grafica mai ales pentru a schimba

cat mai usor valoarea unei proprietati,pentru a seta aspectul sau cali-

tatea unui alt obiect etc.(Exemplu: nuanta unei culori ).Pentru a determi-

na un domeniu limitat de valori acceptabile,se pot utiliza proprietatile

KeyboardHighValue si KeyboardLowValue.

EXEMPLU: Deschideti o noua fereastra Form Designer.

Adaugati un obiect de tip Spinner si un obiect de tip Label.

Pentru ca saltul sa se faca cu o valoare fractionara,setati proprietatea

Increment(Exemplu: la 3.14 )(in fereastra Properties).Pentru ca sa atri-

buiti o valoare de pornire in format decimal,executati un dublu click pe

metoda Init Event si editati textul: ThisForm.Spinner1.Value = 0.000

Apoi executati un dublu click pe metoda Interactive Change Event si edi-

tati textul: ThisForm.Label1.Caption = Str(ThisForm.Spinner1.Value,5,5)

Verificati fereastra cu Run Form.

Pentru a completa exemplul,puteti utiliza alte trei obiecte Spinner

cu care sa schimbati in timpul executiei culoarea de fond pentru Label1.

Adaugati cele trei obiecte si utilizati metoda Init Event a fiecarui

obiect spinner pentru a seta o valoare oarecare,cu o formula de genul:

This.Value = 200 (setati valorile 50,200 si 250)

Apoi setati pentru fiecare obiect proprietatea Increment la valoarea 10,

proprietatea KeyboardHighValue la valoarea 255 si KeyboardLowValue la

valoarea 0.In final adaugati un buton si editati motoda Click Event astfel

ThisForm.Label1.BackColor = RGB(ThisForm.Spinner2.Value,

ThisForm.Spinner3.Value,ThisForm.Spinner4.Value)

Schimbati numele butonului,in Caption (OK).

Verificati fereastra cu Run.In mod normal,puteti utiliza obiectul Spinner1

pentru a face salturi de 3.14,afisate in Label1,sau puteti utiliza cele

trei obiecte Spinner si butonul pentru a alege activ o culoare de fond

pentru obiectul Label1.Daca doriti,adaugati si trei obiecte de tip Label

in care sa specificati culoarea setata de fiecare spinner (Rosu,Verde si

Albastru).Daca depasiti valorile limita admise,in momentul in care apasati

butonul,va apare o fereastra de avertizare in care se afiseaza domeniul

de valori admise(comanda nu se executa).


-22- FORM - GRID

Cel mai important obiect din bara de controale este obiectul Grid.Acest

obiect este de tip container si permite afisarea datelor sub forma de

randuri si coloane (in tabele).Fiecare coloana este la randul sau un con-

tainer ce include un obiect de tip Header (titlul) si un grup de controale

(de obicei de tip TextBox).Fiecare dintre obiectele care compun obiectul

de tip Grid are proprietati si metode proprii si poate fi accesat sepa-

rat de restul obiectelor din grila.Prin urmare,obiectul de tip Grid poate

fi imaginat ca un grup de obiecte,ce pot fi controlate simultan prin

proprietati si relatii comune,sau pot fi accesate independent de restul

obiectelor.Ca rezultat,datele prezentate in interiorul unui astfel de

obiect pot fi prelucrate prin formule mai mult sau mai putin complexe.

Acest obiect este utilizat preferential pentru prezentarea datelor in

format tabelar,dar poate fi utilizat si pe post de container pentru orice

alt tip de obiecte vizuale.Obisnuit,obiectul de tip grid este conectat

fie la un tabel de tip .dbf,fie la o baza de date.

Pentru a prezenta tabele simple,cu un numar relativ redus de inregis-

trari,se poate utiliza un obiect de tip Grid in care se vor afisa toate

datele.Cu cat tabelul este mai mare,cu atat se vor utiliza formule mai

complexe de selectare a datelor dorite.Uneori,se vor putea utiliza doua

sau mai multe obiecte de tip Grid,in care se vor prezenta doar selectii

ale datelor din tabel,sau datele vor fi ordonate si sortate prin formule

diferite.In alte situatii,se vor utiliza mai multe obiecte de tip Grid

pentru a prezenta datele dintr-un tabel in functie de metode diferite de

filtrare a inregistrarilor afisate,etc.In functie de scopul propus,se

vor extrage din tabelul sursa,doar una sau mai multe dintre coloanele de

date.Mai mult decat atat,obiectul de tip Grid poate include atat datele

preluate dintr-un tabel cat si obiecte de comanda si control (butoane,

EditBox,CheckBox) prin care se pot executa operatii asupra datelor.

Un singur obiect de tip Grid,poate prezenta coloane de date preluate

din doua sau mai multe tabele,sau poate prezenta date rezultate prin

efectuarea unor operatii asupra datelor din tabele (Exemplu: suma valori-

lor numerice din doua sau mai multe coloane).

Pentru proiectarea si implementarea obiectului,cea mai simpla modalita-

te este data de instrumentul Builder din Form Designer.

EXEMPLU: In fereastra Project Manager deschideti Form Designer(New Form).

Adaugati un obiect de tip Grid si executati un click drept de mouse,apoi

alegeti optiunea Builder.

Se va deschide fereastra Grid Builder si meniul Grid Items.

Pentru a conecta obiectul la un tabel,sau la o baza de date,apasati bu-

tonul cu trei puncte si alegeti tabelul dorit.

De exemplu alegeti Biblioteca.dbf.Observati ca se va afisa automat si

baza de date (Baza1) cat si celalat tabel inclus in aceeasi baza de date

(Arhiva1).Pentru a forma coolanele grilei,alegeti din caseta Available

Fields coloanele dorite (Exemplu: Autor,Titlul,Descriere) si apasati

butonul cu sageata spre dreapta pentru a deplasa datele in caseta Selected

Fields.

Pentru a schimba stilul de prezentare,alegeti meniul Style si una

dintre variantele accesibile (Exemplu: Ledger),apoi alegeti meniul Layout

pentru a vedea aspectul final al datelor.La nevoie,redimensionati campu-

rile tragand cu butonul mouse apasat de titlul fiecarei coloane.Apoi

confirmati cu OK si verificati fereastra cu Run Form.


-23-

La nevoie,redimensionati fereastra Form,astfel incat sa include toate

coloanele selectate.

In continuare,puteti utiliza proprietatile si metodele fiecarui obiect

pentru a modifica aspectul sau forma de prezentare.De exemplu,in fereastra

Properties,alegeti Grid1,apoi proprietatea BackColor si setati valorile

10,250,50.Verificati cu Run Form.

Pentru a modifica doar aspectul titlului primei coloane,alegeti in

fereastra Properties obiectul Header1 (utilizati sageata de derulare din

caseta de editare),apoi alegeti proprietatea BackColor si setati valorile

100,100,250.Daca doriti sa schimbati titlul,alegeti Caption si introduceti

textul dorit.

Daca doriti sa modificati culoarea de fond,doar pentru cea de a doua

coloana,derulati in fereastra Properties pana la obiectul Column2,apoi

alegeti obiectul Text1 situat sub obiectul Column2(fiecare coloana are

cate un obiect de tip Text1) si apoi alegeti proprietatea BackColor si

setati valorile 250,100,50.In acest caz,nu se va putea vizualiza imediat

aspectul selectat ci va fi necesar sa executati obiectul cu Run Form si

sa selectati o inregistrare din cea de a doua coloana.Inregistrarea

activa va fi colorata caramiziu.

Asadar,grila in intregime,titlurile si coloanele pot fi prelucrate

independent,ca si cand ar fi obiecte izolate.In mod similar,puteti seta

oricare dintre proprietatile sau metodele si evenimentele obiectelor.

Pentru a experimenta o grila care contine si butoane de comanda,

puteti crea un tabel de tip Free Tables cu urmatoarele campuri de date:

Produs,Cod,Valoare,Butoane.Salvati tabelul cu numele calcul1.dbf si apoi

introduceti cateva date in primele trei coloane (lasati liber campul de-

numit butoane).Apoi deschideti o noua fereastra Form Designer(cu New Form)

adaugati un obiect de tip Grid,deschideti Grid Designer si includeti

in selectie cele patru campuri.Verificati fereastra cu Run Form.

In continuare,pentru a schimba coloana Butoane cu obiecte de tip

Command Button,executati un click drept de mouse pe obiectul Grid si

selectati optiunea Edit(obiectul va fi inconjurat cu un chenar verde),

apoi selectati un buton din Controls Toolbar si executati un click in

coloana Butoane.In acest moment,coloana Butoane va contine atat obiectul

de tip TextBox cat si obiectul de tip CommandButton,dar obiectul de tip

TextBox il mascheaza pe cel subjacent.Pentru a pune in evidenta butonul,

executati un click in Form,apoi deschideti fereastra Properties,derulati

caseta de editare pana la coloana a patra si observati cele doua obiecte.

Alegeti obiectul Text1,executati un click in fereastra Form si apoi

apasati tasta Del.In acest moment,in Form1,coloana Butoane din Grid1 va

afisa un buton de tip Command Button.Pentru a putea utiliza butonul,

alegeti din fereaastra Properties obiectul Command1 (sub Column4) si

schimbati numele in Caption (Exemplu: FONTURI).Apoi alegeti metoda

Click Event si editati urmatorul text:

ThisForm.Grid1.FontName = 'Impact'

ThisForm.Grid1.ForeColor = RGB(250,20,20)

Apoi alegeti metoda RightClick Event si editati urmatorul text:

ThisForm.Grid1.FontName = 'Arial'

ThisForm.Grid1.ForeColor = RGB(0,0,0)

La nevoie redimensionati inaltimea campurilor cu Grid1.RowHeight=30 si

testati fereastra cu Run Form.Executati click dr/stg in coloana Butoane.


-24-

In forma actuala,butonul din coloana Butoane nu este vizibil decat

dupa ce se executa primul click de selectie in aceasta coloana,deoarece

la initializarea ferestrei se activeaza implicit prima coloana din grila.

Pentru ca butonul sa fie vizibil de la inceputul aplicatiei,selectati in

fereastra Properties obiectul Grid1,executati un dublu click pe metoda

Init Event si editati urmatorul text:

ThisForm.Grid1.Column4.SetFocus

Acum coloana Butoane este cea care va fi activata implicit la debutul

aplicatiei,iar butonul continut va fi afisat de la bun inceput.

Pentru ca sa afisati intr-un obiect grila valori diferite de cele din

tabelul sursa,se pot utiliza expresii matematice prin care se calculeaza

sau recalculeaza valorile,in functie de cele continute in tabele.Pentru

acest scop se utilizeaza proprietatea ControlSource a coloanei respective.

De exemplu,daca in tabelul calcul1.dbf coloana Valoare este de tip

double,se poate executa un calcul matematic direct asupra valorilor din

aceasta coloana.De exemplu,presupunem ca fiecare produs din tabel asigura

un profit de 16% din valoare,in urma comercializarii.Pentru a putea afisa

profitul pentru fiecare valoare,alegeti in fereastra Properties coloana

care contine datele preluate din calcul1.valoare (coloana3) si schimbati

proprietatea ControlSource din calcul1.valoare in calcul1.valoare * 0.16.

Apoi alegeti titlul coloanei respective (Header1) si schimbati proprie-

tatea Caption la valoarea PROFIT.

Executati fereastra cu Run Form.Grila va contine o coloana noua,intitulata

PROFIT in care se va afisa direct rezultatul calculului efectuat.Daca

doriti,puteti utiliza Builder pentru a adauga in grila si coloana Valoare

(dupa schimbarea titlului coloana este din nou accesibila).

Pentru afisarea campurilor calculate astfel,se pot utiliza formule mai

mult sau mai putin complexe.Daca datele din coloana sunt de tip caracter,

este necesar sa fie convertite la o valoare numerica inainte de a fi

calculate.Invers,atunci cand coloana in care se vor arhiva rezultatele

definitive este de tip caracter,dupa efectuarea calculelor matematice se

va face si conversia de la tipul numeric la tipul caracter.Exemple destul

de sugestive se gasesc si in Help/Sample Applications/Solutions/Controls/

Grid/Display calculated values in a column.

Pentru ca datele sa poata fi prezentate cat mai clar,se pot utiliza

simultan mai multe obiecte de tip Grid,in care se aleg doar o parte

dintre coloanele unui tabel,sau se utilizeaza criterii diferite de

ordonare.Atunci cand mai multe tabele sunt incluse in aceeasi baza de date

si sunt indexate,se poate stabili o legatura temporara,sau permanenta,

intre doua sau mai multe tabele.Un exercitiu destul de elocvent a fost

prezentat impreuna cu baza de date baza1 (cu tabelele biblioteca.dbf si

respectiv arhiva1.dbf) (vezi si pagina 9).

Cand urmeaza sa utilizati un numar mai mare de tabele,sau tabele cu

un numar foarte mare de coloane si de inregistrari,este bine sa faceti

o mica schita si sa paginati obiectele inainte de a incepe munca de pro-

gramare propriu zisa.Este bine sa incadrati fiecare obiect in asa fel

incat pagina rezultata sa poata fi afisata pe ecran in intregime si/sau

sa poata fi imprimata pe o coala de hartie de format normal (A4).Alegeti

cu atentie culorile si fonturile,astfel incat datele esentiale sa fie cat

mai usor de observat de la prima vedere.Evitati sa utilizati prea multe

culori,sau nuante prea stridente.


-25- FORM - IMAGE

Urmatorul obiect din paleta Form Controls este Image.Acest obiect per-

mite preluarea si afisarea imaginilor de tip BitMap.Prin proprietatile,

metodele si evenimentele sale,obiectul de tip Image poate fi astfel

configurat incat sa prezinte imaginea de tip BitMap la parametrii optimi,

sau poate fi deplasat,modificat,si actualizat in timpul executiei.Daca

se utilizeaza si un algoritm temporal,obiectele de tip Image se pot uti-

liza si pentru a realiza diverse efecte de animatie.Se pot utiliza file

de tip .bmp create cu diverse editoare de imagini.Programul VisualFox

contine un astfel de editor de imagini,in directorul Imagedit.

Pentru a exemplifica acest obiect,creati doua file de tip .bmp cu

dimensiuni de 100 x 100 si salvati cele doua file cu un nume oarecare.

EXEMPLU: realizati doua imagini cu cate o inimioara cu dimensiuni si

culori diferite si salvati cele doua file astfel:inima1.bmp si inima2.bmp.

Din fereastra Project Manager alegeti Form,apoi New si New Form.

In fereastra Form Designer adaugati un obiect de tip Image,apoi utilizati

proprietatea Picture pentru a selecta prima dintre cele doua imagini cre-

ate anterior (inima1.bmp).Redimensionati obiectul si apoi verificati fe-

reastra cu Run Form.

Apoi adaugati un alt obiect de tip Image si selectati in proprietatea

Picture cea de a doua imagine.Verificati fereastra cu Run Form.

Daca doriti ca imaginile sa fie prezentate alternativ,deplasati cel

de al doilea obiect de tip Image,astfel incat sa se suprapuna exact peste

primul.Apoi alegeti din fereastra properties obiectul Image1 si executati

un dublu click pe metoda Click Event si editati textul:

ThisForm.Image1.Visible = .F.

ThisForm.Image2.Visible = .T.

Apoi alegeti obiectul Image2 si editati metoda Click Event astfel:

ThisForm.Image2.Visible = .F.

ThisForm.Image1.Visible = .T.

Apoi verificati fereastra cu Run Form.In mod normal,la fiecare click de

mouse pe imaginea grafica se va inlocui imaginea existenta cu imaginea

alternativa.

Daca doriti sa puteti deplasa cele doua imagini cu un click drept de

moause,selectati pentru fiecare obiect metoda RightClick Event si editati

cate o procedura de genul:

ThisForm.Image1.Left = ThisForm.Image1.Left + 10

ThisForm.Image1.Top = ThisForm.Image1.Top + 10

si respectiv:

ThisForm.Image2.Left = ThisForm.Image2.Left -5

ThisForm.Image2.Top = ThisForm.Image2.Top -5

Verificati fereastra cu Run Form.Cu un click de mouse stang puteti selecta

imaginea dorita,iar cu cate un click de mouse drept puteti deplasa cele

doua imagini (spre colturile opuse ale ferestrei).

Prin metodele si evenimentele Windows,obiectele de tip Image sunt

obiecte active si pot fi utilizate pentru a realiza orice fel de operatii

in fereastra.De exemplu,un click de mouse pe o astfel de imagine grafica

poate determina efectuarea unui calcul matematic,poate actualiza o inre-

gistrare dintr-un tabel,sau poate determina imprimarea datelor...etc.

Acest gen de obiecte,nu sunt doar decorative,ci pot fi utilizate la fel

ca orice alt obiect din interfata.Metodele WriteExpresion si ReadExpresion

se pot utiliza pentru reconfigurarea proprietatilor in timpul executiei.


-26- FORM - TIMER

Pentru a putea executa una sau mai multe operatii,la intervale regulate

de timp se pot crea o serie de algoritmi care citesc periodic ceasul sis-

temului.Pentru a simplifica acest gen de situatii,exista si un obiect

visual,de tip cronometru,denumit Timer.Acest obiect este invizibil in

timpul executiei,dar contine un grup de proprietati,8 metode si 4 eveni-

mente ce pot fi utilizate activ pentru temporizarea operatiilor utile.

Dintre acestea,proprietatea Interval,determina in milisecunde durata

de timp dintre doua evenimente de tip Timer.De exemplu,daca proprietatea

Interval este setata la valoarea 1000,atunci evenimentele de tip Timer se

vor succeda la intervale de timp de o secunda.

EXEMPLU: Deschideti o fereastra noua in Form Designer si adaugati un

obiect de tip Label.Ajustati dimensiunile,culorile si Fonturile.Apoi

adaugati un obiect de tip Timer,setati proprietatea Interval = 1000 si

editati metoda Timer Event astfel:

ThisForm.Label1.Caption = Time()

Apoi verificati fereastra cu Run Form.In mod normal,Label1 va afisa ora

exacta,actualizata la intervale de o secunda (un ceas digital).Puteti

utiliza acest gen de implementare,pentru a adauga ora exacta in orice

fereastra de tip Form.

Pentru a putea executa operatii complexe,se pot utiliza mai multe cro-

nometre.O aplicatie frecventa o reprezinta jocurile grafice,in care

fiecare cronometru controleaza un grup de actiuni ale unui anumit obiect,

sau realizeaza un efect de animatie.O alta aplicatie practica o repre-

zinta actualizarea unui tabel,sau a unei selectii,folosind ca sursa o

baza de date situata la distanta sau in retea.

Obiectele de tip Timer nu sunt vizibile decat in etapa de design.Pentru

ca depanarea aplicatiilor sa fie cat mai usoara,este bine sa amplasati

obiectul Timer,imediat langa obiectul pe care il controleaza (dar poate fi

amplasat oriunde in Form).

EXEMPLU: Pentru a obtine o inima care pulseaza,puteti utiliza cele doua

file .bmp realizate pentru obiectul Image.Deschideti o noua fereastra in

Form Designer si adaugati un obiect de tip Image.Utilizati proprietatea

Picture pentru a afisa prima inimioara,apoi suprapuneti cel de al doilea

obiect de tip Image si utilizati proprietatea Picture pentru a afisa cea

de a doua inimioara.Pentru a obtine un efect de animatie,adaugati un

obiect de tip Timer,setati proprietatea Interval la valoarea 800,apoi

editati metoda Timer Event astfel:

IF ThisForm.Image1.Visible = .T.

ThisForm.Image1.Visible = .F.

ThisForm.Image2.Visible = .T.

ELSE

ThisForm.Image1.Visible = .T.

ThisForm.Image2.Visible = .F.

ENDIF

apoi verificati fereastra cu Run Form.Pentru a schimba ritmul,puteti

modifica proprietatea Interval,sau puteti adauga un obiect de tip Spinner

care sa actualizeze valoarea proprietatii Interval in timpul executiei.

In mod similar,puteti realiza orice efect de animatie.Incercati sa

obtineti un efect de animatie,in care o masinuta sau un trenulet sa se

deplaseze in fereastra de la o extremitate la alta.Eventual,cu un obiect

Timer secundar,puteti semnaliza,sau puteti emite un nor de vapori...etc.


-27- FORM - PAGE FRAME

Urmatorul obiect din bara Form Controls este Page Frame.Acest obiect

este de tip container si este util pentru a forma aplicatii de tip fisier.

Page Frame este doar cadrul (chenarul) in care se includ doua sau mai

multe obiecte de tip pagina (Page).Desi este de tip container,Page Frame

nu este vizibil decat daca este inclus intr-o fereastra de tip Form(este

asemanator cu tipul Panel din Delphi).Page Frame contine o serie de pro-

prietati si metode prin care defineste caracterele generale ale obiectului

(dimensiunea,pozitia,chenarul,pagina activa etc) si un set de evenimente

ce pot fi utilizate pentru a ordona activitatea din fisier.

In plus,fiecare pagina este un obiect independent,cu proprietatile,

metodele si evenimentele sale.In sinteza,PageFrame este o colectie de

obiecte de tip pagina,ordonate sub forma de fisier.Trebuie remarcat si

faptul ca metoda Refresh apelata pentru fereastra in care este inclus

obiectul Page Frame nu actualizeaza intregul obiect ci doar pagina care

este activa in momentul apelului.

Acest obiect se utilizeaza pentru a realiza obiecte de tip fisier,in

care fiecare pagina prezinta cate un set diferit de informatii.

EXEMPLU: In Project Manager deschideti o noua fereastra Form Designer.

Adaugati si redimensionati un obiect de tip Page Frame.Deschideti fe-

reastra Properties si setati proprietatea PageCount = 5.Acum fisierul

d-voastra va avea 5 pagini diferite (5 obiecte diferite).Puteti utiliza

acest fisier pentru a prezenta datele din tabelul biblioteca.dbf.Pentru

acest scop,executati un click drept in Form,alegeti Data Enviroment si

selectati tabelul Biblioteca.dbf.Apoi adaugati in Page Frame 5 obiecte

de tip Text Box(suprapuse sau subjacente).Adaugati in Form,in afara

obiectului Page Frame si un obiect de tip Label (afiseaza pagina activa).

Selectati pe rand,fiecare obiect de tip Text Box si utilizati Builder,

apoi Value pentru a prelua in fiecare obiect cate un camp de date din

tabelul biblioteca.dbf (Text1=Biblioteca.Titlul,Text2=Biblioteca.Autor,

Text3=Biblioteca.Editura,Text4=Biblioteca.Anul,Text5=Biblioteca.Descriere)

Apoi,in fereastra Properties alegeti obiectul Page1.In Caption intro-

duceti titlul paginii,de exemplu Titlul.Apoi setati proprietatea BackColor

(de exemplu: 250,50,100).Editati metoda Click Event astfel:

ThisForm.Label1.Caption = This.Caption

ThisForm.Text1.Visible = .T.

ThisForm.Text2.Visible = .F.

ThisForm.Text3.Visible = .F.

ThisForm.Text4.Visible = .F.

ThisForm.Text5.Visible = .F.

Apoi alegeti obiectul Page2.Setati Caption = Autor si BackColor (de

exemplu: 200,100,100) si editati Click Event astfel:

ThisForm.Label1.Caption = This.Caption

ThisForm.Text1.Visible = .F.

ThisForm.Text2.Visible = .T.

ThisForm.Text3.Visible = .F.

ThisForm.Text4.Visible = .F.

ThisForm.Text5.Visible = .F.

Procedati asemanator,si pentru obiectele Page3,Page4 si Page5,astfel

incat fiecare pagina sa afiseze un alt obiect Text Box.Apoi setati in

metoda Init Event din Pageframe1 configuratia initiala(primul obiect de

tip Text Box vizibil,restul ascunse).Verificati obiectul cu Run Form.


-28- FORM - OLE CONTAINER

Un alt obiect extrem de util este OLE Container.Acest obiect de tip

container permite includerea in fereastra a unor obiecte de tip OLE,create

in alte programe sau aplicatii.Din categoria obiectelor OLE,fac parte atat

obiectele de tip ActiveX,cat si obiectele OLE inserabile create in apli-

catii de tip Microsoft Word,sau Microsoft Excel.Tehnologia OLE (Object

Link Embadded) a fost creata special pentru a permite schimbul de date

dintre aplicatiile create pe platforme software diferite.In plus,obiectul

OLE Container adauga si un set de proprietati,metode si evenimente pro-

gramabile pentru controlul operatiilor din fereastra.Puteti utiliza un

astfel de control,de exemplu,pentru a include in pagina o fila editata cu

NotePad din Windows.

EXEMPLU: Pentru ca obiectul OLE Container sa poata fi utilizat este ne-

cesara si o fila auxiliara denumita vfpole50.dll.In mod normal,gasiti

aceasta fila in directorul OS/SYSTEM (unitatea C).Copiati fila in directo-

rul Vfp (pentru a fi mai usor de identificat).

Apoi,in Project Manager,alegeti Forms,New si New File.

Adaugati in Form Designer un obiect de tip OLE Container.Daca fila dll

(vfpole.dll) este corect instalata,se va deschide automat fereastra Insert

Object in care puteti selecta tipul de obiect OLE pe care doriti sa-l

includeti in container.Pentru a crea un obiect grafic de tip BitMap

selectati optiunea Bitmap Image si confirmati cu OK,apoi desenati imaginea

dorita (la fel ca in Paint din Windows).

Pentru a include in fereastra o pagina editata anterior cu WordPad,

alegeti in caseta Object Type optiunea Word Pad Document,apoi selectati

optiunea Create from File.Utilizati butonul Browse pentru a seta calea

de acces la fila dorita,apoi confirmati cu OK.Pentru a putea verifica

documentul,executati un click drept de mouse in OLE Container si alegeti

optiunea Package Object,apoi Activate Contents.

In final verificati fereastra cu Run Form.Documentul va fi afisat la fel

ca in ecranul Desktop din Windows si va putea fi deschis cu un dublu click

de mouse.In plus,puteti utiliza toate metodele si evenimentele obiectului

Olecontrol1 pentru a adauga procedurile dorite.

Un obiect asemenator este OLE Bound.Acest obiect este tot un container,

dar se utilizeaza pentru a include obiectele de tip OLE in campurile de

tip General ale unui tabel de tip .dbf.Cu un astfel de control puteti

include intr-o baza de date,documentele de tip NotePad,sub forma de

inregistrari ale unui tabel.Obiectele inserabile de tip OLE nu au proprie-

tati,metode si evenimente,astfel incat obiectul OLE Bound suplineste si

aceasta deficienta prin proprietatile,metodele si evenimentele sale.

Bazele de date ce contin in tabele si obiecte de tip OLE sunt mai greu

de organizat,ocupa mai mult spatiu de memorie si blocheaza o buna parte

din memoria de operare,doar pentru evidenta legaturilor (link-uri) dintre

container si obiectele inserabile.Daca sunteti incepator,nu este recoman-

dabil sa proiectati acest gen de aplicatii (daca memoria de RAM nu este

corect exploatata,o parte dintre link-uri vor ramane nerezolvate si

obiectul final va fi incomplet sau nefunctional).Pentru a crea astfel de

baze de date,este recomandabil sa va sfatuiti si cu administratorul de

sistem.Acest obiect este foarte util,pentru obiectele de tip OLE,altele

decat cele de tip ActiveX.Visual FoxPro contine un set foarte bogat de

obiecte de tip ActiveX (vezi capitolul urmator),care au proprietati,

metode si evenimente proprii si nu necesita un OLE Container intermediar.


-29- FORM - LINE si SHAPE

Pentru a include obiecte de tip ActiveX in OLE Container,alegeti din

fereastra Insert Object optiunea Insert Control,apoi alegti tipul de

control dorit (Exemplu: Chart FX).

Urmatoarele obiecte din bara de controale sunt Line si Shape.Ambele,au

mai mult un rol decorativ,dar,prin metodele si evenimentele lor pot fi

utilizate pentru a organiza actiunile efectuate in fereastra respectiva.

Obiectul Line se utilizeaza pentru a adauga in fereastra o linie,oblica

orizontala sau verticala.Pentru a schimba culoarea,se poate utiliza pro-

prietatea BorderColor.Pentru a determina orientarea si dimensiunile,se

poate trage cu mouse de obiect,sau se pot utiliza proprietatile Height si

Width impreuna cu Top.Metodele si evenimentele se pot utiliza pentru a

modifica aspectul liniei in timpul executiei (efecte de animatie),sau

pentru a determina orice alt gen de operatii posibile.

EXEMPLU: Deschideti o noua fereastra Form Designer.Adaugati un obiect

de tip Line.Pentru ca linia sa fie rosie,setati proprietatea BorderColor

(de exemplu: 250,0,0).Pentru ca linia sa fie orizontala,setati proprie-

tatea Height la valoarea 0,apoi determinati lungimea liniei cu ajutorul

proprietatii Width.Daca doriti sa adaugati si un efect de animatie,puteti

adauga un obiect de tip Timer la care setati proprietatea Interval =100 si

editati metoda Timer Event astfel:

IF ThisForm.Line1.Height < ThisForm.Line1.Width

ThisForm.Line1.Height = ThisForm.Line1.Height +1

ThisForm.Line1.Width = ThisForm.Line1.Width - 1

ENDIF

Obiectul Shape deseneaza un chenar dreptunghiular,un cerc sau o elipsa.

Pentru a determina forma obiectului desenat se utilizeaza proprietatea

Curvature,care poate lua valori intre 0 si 99.Valoarea 0 specifica absenta

unei curbaturi si determina un obiect cu unghiuri drepte in timp ce va-

loarea 99 specifica o curbatura maxima si determina obiecte circulare sau

eliptice.Pentru a determina exact dimensiunile si coordonatele obiectului

se pot utiliza proprietatile Height si Width si respectiv Top si Left.

Pentru a modifica aspectul se pot utiliza proprietatile BackColor,Border-

Color,DrawMode,FillColor si SpecialEffect.In plus,se pot utiliza metodele

si evenimentele obiectului.

EXEMPLU: In fereastra Form Designer adaugati un obiect de tip Shape.

Setati BackColor = RGB(50,200,50) si BorderColor = RGB(0,0,250).Apoi

setati dimenisunile si pozitia obiectului.Pentru a putea observa efectul

proprietatii Curvature,cu ajutorul unui efect de animatie,adaugati un

obiect de tip Timer,setati proprietatea Interval = 50 apoi editati metoda

Timer Event astfel:

IF ThisForm.Shape1.Curvature < 99

ThisForm.Shape1.Curvature = ThisForm.Shape1.Curvature + 1

ENDIF

Verificati fereastra cu Run Form.

Aceste obiecte se utilizeaza fie pentru a evidentia un alt obiect din

aplicatie (Exemplu: o linie de subliniere pentru un obiect de tip Label),

fie pentru a crea o arie colorata diferit in care se va executa un click

de mouse,sau un dublu click,pentru a determina o anumita operatie.

Obiectele Line si Shape se pot utiliza si pur decorativ,pentru a crea

o sigla,un antet,un simbol de identificare a ferestrei,sau pentru a adauga

efecte vizuale si/sau desene animate,etc.

-30- FORM - CONTAINER si LOCKS

Un alt obiect simplu este obiectul denumit Container.Este de tip con-

tainer si se utilizeaza pentru a grupa doua sau mai multe obiecte.Acest

obiect creaza un alt spatiu de vizibilitate pentru obiectele continute.

Pentru a fi usor de individualizat intr-o fereastra,se poate utiliza

proprietatea BackColor sau se poate utiliza proprietatea Picture,pentru

a realiza o imagine de fundal cat mai atragatoare.Un obiect de tip con-

tainer poate grupa butoane,casete de dialog,etichete si texte statice,

imagini si desene etc.O alta aplicatie o reprezinta jocurile video,unde

grupeaza si deplaseaza grupuri de obiecte de tip BitMap si Image.

Prin metodele si evenimentele sale,poate adauga noi facilitati obiecte-

lor continute.Astfel,se pot utiliza metodele containerului pentru a

determina actiuni care intereseaza simultan toate obiectele continute si

respectiv metodele fiecarui obiect in parte,pentru a specifica actiunile

specifice ale obiectului respectiv.

Pentru a utiliza acest obiect,nu trebuie decat sa adaugati in fereastra

Form Designer un astfel de obiect si apoi sa setati pozitia,dimensiunile,

aspectul si actiunile specifice.Proprietatea Visible,nu afecteaza si

obiectele continute (nu se poate utiliza pentru a "ascunde" controalele).

Urmatorul obiect din bara de controale este Separator.Rolul sau este

destul de limitat si are un set limitat de proprietati si metode.Nu poate

fi activat de catre evenimentele Windows (nu raspunde la mesaje).Se poate

utiliza doar pentru a introduce un spatiu gol intre controalele amplasate

intr-o bara de controale (implicit sunt grupate fara spatii).

Ultimele doua controale din bara de controale Standard sunt Builder

Lock si Button Lock si se utilizeaza pentru a mentine o anumita actiune.

Daca apasati butonul Builder Lock,atunci,pentru fiecare obiect nou creat

se va deschide automat utilitarul Builder,in momentul in care adaugati

controlul in fereastra Form Designer.Este util atunci cand urmeaza sa

adaugati si sa definiti intr-o fereastra mai multe obiecte care necesita

utilitarul Builder (Exemplu: mai multe grile si cateva casete de dialog).

Button Lock mentine activata orice alta selectie din bara de controale.

Daca apasati acest buton,dupa ce selectati un anumit control,puteti adauga

oricate obiecte din tipul respectiv cu un simplu click de mouse (fara sa

mai fie nevoie sa selectati obiectul in bara de controale).Exemplu: pentru

a adauga un numar oarecare de obiecte de tip Label,apasati butonul Label,

apoi apasati butonul Button Lock si apoi executati in fereastra cate un

click de mouse pentru fiecare obiect Label necesar.Practic,butonul Button

Lock blocheaza butonul activ,atat timp cat este necesar.

Acesta este setul standard de controale vizuale.Pentru a adauga in

bara standard si alte controale,puteti utiliza butonul View Classes dupa

care alegeti optiunea Add.Pentru a inlocui obiectele standard cu un set

oarecare de obiecte de tip ActiveX,alegeti din meniul Tools optiunea

Options,apoi Controls,selectati butonul ActiveX controls si alegeti in

caseta Selected controalele dorite (Exemple: Bitmap Image,Chart FX,Image

Document,NetManage TCP,Video Clip etc.) si confirmati cu OK.Apoi apasati

butonul View Classes si alegeti optiunea ActiveX Controls.Bara de con-

troale standard va fi inlocuita cu o bara in care vor fi incluse controa-

lele de tip ActiveX selectate anterior.Pentru a reveni la bara standard,

selectati din nou butonul View Classes si alegeti optiunea Standard.

In aceeasi fereastra se pot grupa si combina atat controale standard,

cat si controale de tip ActiveX,dar,atentie la stabilirea link-urilor.


-31- FORM - ActiveX

Controalele de tip ActiveX pot fi selectate din bara de controale si

adaugate in fereastra cu un simplu click de mouse,deoarece obiectul de

tip OLEContainer va fi creat si initializat automat.Obiectul de tip

ActiveX va beneficia atat de metodele si proprietatile proprii(atunci

cand exista) cat si de cele ale obiectului container de suport.

Exista un numar foarte mare de astfel de controale.O parte dintre ele

sunt incluse in VisualFox sub forma de file cu extensia .OCX,iar restul

pot fi procurate si adaugate din diverse surse(Internet,discuri sursa etc)

sau pot fi preluate din alte aplicatii instalate pe acelasi calculator

(Delphi,Visual Basic,Visual C,Excel etc.).

Paleta de obiecte de tip ActiveX este extrem de bogata si satisface

toate necesitatile de progrmare,pentru o serie intreaga de aplicatii si

domenii de activitate (Exemple: aplicatii audio-video,comunicatie in

retea,interfete grafice,animatie si jocuri video,baze de date,analiza si

sistematizarea datelor etc.).O parte dintre controalele ActiveX pot fi

utilizate direct in mediul VisualFox,fara nici o alta operatie prelimi-

nara,in timp ce altele necesita prezenta unor file speciale cu un anumit

format(Exemple: .avi,.jpg,.wav etc.),sau prezenta unor unitati si biblio-

teci de functii de tip .DLL si/sau coexistenta unor alte programe auxi-

liare.Multe dintre aceste controale au fost concepute pentru alte medii

de programare.Ca rezultat,aceste controale pot fi apelate si utilizate in

VisualFox,dar solutiile de implementare pot fi uneori destul de complexe.

In acest manual se vor prezenta succint,doar cateva controale simple,

ce pot fi apelate si exploatate direct.Pentru restul obiectelor de tip

ActiveX puteti consulta documentatia tehnica sau literatura de speciali-

tate.O parte dintre obiecte sunt insotite de un manual de utilizare,dar

majoritatea nu au nici o documentatie tehnica.Pentru oricare dintre aceste

obiecte puteti utiliza direct metodele si evenimentele containerului.

Atunci cand doriti sa utilizati un singur astfel de obiect,este mai simplu

sa adaugati un obiect de tip OLEContainer si sa utilizati optiunea Insert

Control pentru a alege obiectul dorit.Cand doriti sa utilizati un numar

mare de controale de tip ActiveX(de exemplu seria Microsoft Forms 2.0 ...)

este mai practic sa formati o bara de controale si apoi sa utilizati bu-

tonul View Classes pentru a activa optiunea ActiveX Controls.

EXEMPLU: Deschideti o fereastra noua in Form Designer.

Adaugati un obiect OLEContainer si alegeti din caseta Object Type optiunea

Bitmap Image.Confirmati cu OK.In fereastra Form1 se va afisa un obiect

de tip Bitmap Image in care puteti realiza un desen cu ajutorul obiectelor

grafice din paleta situata la dreapta ferestrei (la fel ca in Windows).

Realizati un desen oarecare (culorile se pot selecta in paleta situata in


Yüklə 1,41 Mb.

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




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