Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Satisfactia de a face ce iti place. tutorial, lectii online, solutii simple, exmeple, programe, C++

Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

C


Index » educatie » » informatica » C
» FUNCTII PENTRU GESTIONAREA RESURSELOR GRAFICE ALE MEDIULUI C++ BUILDER


FUNCTII PENTRU GESTIONAREA RESURSELOR GRAFICE ALE MEDIULUI C++ BUILDER


FUNCTII PENTRU GESTIONAREA RESURSELOR GRAFICE ALE MEDIULUI C++ BUILDER

1. Obiectivele lucrarii:

            a) Insusirea modului de utilizare a componentelor VCL  TPaintBox si TPanel.

b) Insusirea modului de utilizare a principalelor functii grafice ale mediului C++BUILDER .

            c) Realizarea unor elemente pentru  afisarea grafica a informatiei (diagrama si bargraf). 

.

            2. Aparatura si suporturile utilizate:

            a) PC in configuratia unitate centrala,monitor, tastatura;

            b) Precizarile din prezentul indrumar;

            c) Manuale de prezentare a mediului C++BUILDER.

            3. Breviar

            3.1. Utilizarea componentei TPaintBox

Componenta TPaintBox se gaseste in Component  Palette  (pagina System) . Obiectul de acest tip  furnizeaza o componenta TCanvas care permite  desenarea  in interiorul unui dreptunghi, prevenind depasirea  marginilor acestuia.

In figura 3.1 este prezentat obiectul vizual TPaintBox (asa cum apare pe forma) iar in figura 3.2 acelasi obiect asa cum apare in pagina System. Aducerea pe forma a acestui obiect se realizeaza in conformitate cu precizarile din prima lucrare. Ca si in cazul obiectului Ttimer, nici obiectul TPaintBox nu este vizibil in timpul executiei programului (dupa cum s-a mentionat acesta delimiteaza spatiul de lucru pentru desenare).  

Fig 3.1.

Fig. 3.2.

            In figura 3.3 se prezinta Tabelul cu Proprietati (Object Inspector) paginile Proprietati si Evenimente pentru componenta TPaintBox.

Fig 3.3.

·          Proprietatea Name specifica numele PaintBox-ului.

·        Proprietatea Tag este utilizata pentru transferul de informatii suplimentare (variabile de tip int).

Restul elementelor din figura 3.3 sunt cunoscute de la lucrarile de laborator anterioare.

3.2. Utilizarea componentei TPanel

Componenta TPanel se gaseste in Component  Palette  (pagina Standard) . Obiectul de acest tip  poate fi utilizat pentru desenare daca pe el se amplaseaza o componenta TPaintBox. In prezenta lucrare obiectul TPanel va fi utilizat pentru realizarea bargrafului.

In figura 3.4 este prezentat obiectul vizual TPanel (asa cum apare pe forma) iar in figura 3.5 acelasi obiect asa cum apare in pagina Standard. Aducerea pe forma a acestui obiect se realizeaza in conformitate cu precizarile din prima lucrare. Obiectul TPanel  este vizibil in timpul executiei programului.

                                                            Fig 3.4.

                                                                     Fig 3.5.

            In figura 3.6 se prezinta Tabelul cu Proprietati (Object Inspector) paginile Proprietati si Evenimente pentru componenta TPanel.

Fig 3.6.

·          Proprietatea Name specifica numele Panel-ului.

·        Proprietatea Tag este utilizata pentru transferul de informatii suplimentare (variabile de tip int).

·        Proprietatile Height si Top specifica inaltimea respectiv varful (raportat la obiectul Form). Aceste proprietati se vor modifica prin program in cadrul aplicatiei de constructie a bargrafului.

Restul elementelor din figura 3.6 sunt fie cunoscute de la lucrarile de laborator anterioare fie nesemnificative pentru prezenta lucrare.

3.3. Utilizarea principalelor obiectelor  grafice ale mediului  C++Builder

·        Obiectul TCanvas furnizeaza spatiul de desenare pentru obiectele pe a caror suprafata se poate realiza un desen (de exemplu o linie pe un obiect TPaintBox). In continuare se vor  prezenta  proprietatile Brush si Pen ale obiectului TCanvas .

·                                           Brush  - permite umplerea unui contur inchis cu o culoare  (proprietatea Color) sau cu un model de hasurare (proprietatea Style).

In tabelul 3.1 se prezinta codurile culorilor principale, care pot fi utilizate pentru toate obiectele grafice.

Tabelul 3.1

     Codurile culorilor

Culoare

Functie C++Builder

negru

clBlack

albastru

clBlue

verde

clGreen

rosu

ClRed

galben

clYellow

mov

ClFuschia

maro

clMaroon

alb

ClWhite

argintiu

clSilver

gri

clGray

 



In tabelul 3.2 se prezinta codurile stilurilor de hasurare.

.                                                                                                             Tabelul 3.2

Codificarea stilurilor de hasurare

Nume

Descriere

bsSolid

umple uniform toti pixelii cu culoarea selectata

bsHorizontal

hasura orizontala

bsVertical

hasura verticala

bsFDiagonal

hasura   (diagonala stanga-dreapta)

bsBDiagonal

hasura ///  (diagonala dreapta – stanga)

bsCross

hasura in cruce +++

bsDiagCross

hasura in cruce oblica xxx

           

 
           

·                                           Pen  - permite fixarea unor atribute ale liniilor drepte sau curbe si anume culoare (color), grosime (width), tip (style).

In tabelul 3.3 sunt prezentate codurile pentru stilurile de linie.

                                                                                                            Tabelul 3.3

Codificarea stilurilor de linie

Nume

Descriere

psSolid

linie continua

psDot

linie punctata

psDash

linie intrerupta

psDashDot

linie intrerupta (linie-punct)

psDashDot Dot

linie intrerupta (linie-punct-punct)

 




Pentru grosimi se foloseste proprietatea Width a obiectului grafic Pen in care se specifica un numar intreg (implicit Width=1 pixel, iar alte grosimi se exprima prin multipli 3 pixeli = 3*Width).

Pentru culori sunt valabile codurile din tabelul 3.1.

Obiectului TCanvas  ii sunt asociate si foarte multe metode (functii) dintre care in tabelul 3.4 se prezinta cele cu o frecventa mai mare de utilizare.

                                 

                                                                  Tabelul 3.4

                      Functii de desenare ale obiectului TCanvas

Prototip

Functie

MoveTo(int x,int y)

fixeaza pozitia curenta in (x,y)

LineTo (int x,int y);

linie din poz. curenta pina la (x,y)

Ellipse(int stinga,int sus, int dreapta,

int jos)

deseneaza o elipsa tangenta la

laturile dreptunghiului specificat

Rectangle(int stinga,int sus, int dreapta,int jos)

deseneaza un dreptunghi cu coordonatele colturilor specificate

TextOut (int x, int y, AnsiString Text)

afiseaza textul Text incepand cu punctul de coordonate x, z

FloodFill (int x, int y, TColor  Culoare , TfillStyle Stil)

     Stil=fsSurface sau fsBorder

umple o suprafata,marginita de un contur cu culoare Culoare, care contine punctul de coordonate (x,y) cu  stilul Stil (implicit fsBorder)

CopyRect (TRect dest TCanvas Canvas, TRect sursa)

copiaza zona definita de dreptunghiul sursa in Canvas-ul  Canvas in zona definita de dreptunghiul dest

 


                       

Observatii

1. Suprafata delimitata de un obiect TPaintBox  este vazuta ca o matrice de dimensiuni Width * Height puncte, conform figurii 3.7.

(0,0)                         x                  (Width,0)

 

 

y

 
                 

           

(0,Height)                                         (Width ,Height )

 

Fig. 3.7.

 
             


            2. Referitor la utilizarea obiectului CopyRect (copiaza o zona dreptunghiulara dintr-un Canvas in alta zona dreptunghiulara in acelasi Canvas) se prezinta urmatorul exemplu edificator.

TRect sursa,destinatie; // variabilele  sursa si destinatie sunt de tipul TRect 

sursa=Rect(stinga1, sus1, dreapta1, jos1) ; // se construieste dreptunghiul sursa

destinatie=Rect(stinga2, sus2, dreapta2, jos2) ; // se construieste dreptunghiul destinatie

PaintBox1->Canvas->CopyRect(destinatie,PaintBox1->Canvas,sursa) ;

 //copiaza imagina incadrata de dreptunghiul sursa  in dreptunghiul destinatie

               

  3.    Pentru detalii in legatura cu utilizarea resurselor grafice ale mediului C++Buider  se poate consulta lucrarea : Oltean M., Cocan M., C++Buider in aplicatii, Ed. Albastra, Cluj-Napoca, 1998.

 

Se prezinta mai jos codul sursa al programului P1 care utilizeaza o mare parte din resursele grafice ale mediului C++Builder enumerate in breviar (comentariile se refera intotdeauna la linia urmatoare).

 

//---------------------------------------------------------------------------

#include <vclvcl.h>

#pragma hdrstop

#include 'P1.h'

//---------------------------------------------------------------------------

#pragma resource '*.dfm'

TForm1 *Form1;

int xs,ys;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

                : TForm(Owner)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)

//---------------------------------------------------------------------------

void __fastcall TForm1::Button8Click(TObject *Sender)

//---------------------------------------------------------------------------

4. Modul de lucru

            a) Se alimenteaza sistemul cu tensiune;

            b) Se lanseaza mediul C++ Builder (dublu click pe icon-ul corespunzator din desktop);

            c) Se selecteaza din Main Menu optiunea File si apoi OpenProject urmat de calea D:DIDACTICSMP1905 (a sau b)LUC3Project1.mak.

            e) Se executa click pe butonul Run  din Toolbar (aceasta actiune este urmata de lansarea in executie a programului P1 al carui text sursa este prezentat in breviar);

            f) Se examineaza in programul P1 utilizarea elementelor resurselor grafice ale mediului C++Builder ;

g) Se  elaboreaza  programul P2 pentru realizarea a doua elemente de afisare (bargraf si diagrama cu avans continuu) pentru care forma arata ca in figura 3.8 pe care sunt dispuse urmatoarele obiecte:

-   o forma (Form1)  in Caption-ul careia se va afisa textul „Laboratorul Informatica Industriala”;

-         trei butoane (Button 1, 2, 3 ) cu urmatoarele functii:

§         Buton1 – activarea afisarii in diagrama si in bargraf ( Caption Start);

§         Buton2 – oprirea afisarii in diagrama si in bargraf ( Caption Stop);

§         Buton3 – iesirea din program (Caption Exit).

Fig 3.8.

-         doua timere (Timer1 si Timer2)  cu urmatoarele functii

§         Timer1 (Interval=1000 ms) utilizat la afisarea timpului curent;

§         Timer2 (Interval=500 ms) pentru intervalul de afisare in diagrama si in bargraf;

-         o caseta de editare (Edit1) utilizata pentru afisarea datei si orei curente;

-         doua etichete (Label1 si Label2) cu Caption-ul conform figurii 3.8

Fig.3.9.

Observatii:

-     din primele doua butoane, la un un moment dat va fi  activ unul singur;

-         fiecare obiect va avea hint-ul activ completat corespunzator;

-         valoarea numerica ce se va afisa in cele doua elemente grafice se obtine cu functia random dupa care numarul generat se va converti in pixeli tinandu-se cont de inaltimea comuna a graficului si bargrafului

-         pentru realizarea bargrafului se vor utiliza doua obiecte de tip TPanel de culori diferite care se vor suparpune;

-         pentru desenarea graficului se vor utiliza functiile MoveTo, LineTo iar pentru avansul acestuia functia CopyRect.

In timpul executiei programului  forma va avea aspectul din figura 3.9.

g) Lucrarea se considera incheiata in momentul in care  programul P2 este functional. Referatul  va cuprinde principalele idei din breviar referitoare la mediul C++Builder (resursele grafice) si forma sursa a unit-ului programului P2.

            .






Politica de confidentialitate
C


Access
Adobe photoshop
Autocad
Baze de date
C
Calculatoare
Corel draw
Excel
Foxpro
Html
Internet
Java
Linux
Mathcad
Matlab
Outlook
Pascal
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word

Controale de tip lista
DECLARATII SI CONSTANTE
Multiple instante pentru aceeasi clasa
FUNCTII PENTRU GESTIONAREA RESURSELOR GRAFICE ALE MEDIULUI C++ BUILDER
Clase. Incapsularea
Destructori
Supraincarcarea functiilor
Mostenirea
Functii prietene
Constructorul de copiere















 
Copyright © 2019 - Toate drepturile rezervate