Načini prikaza grafičkih informacija u delphiju. Prezentacija na temu "Prikaz grafičkih informacija u Delphiju"

slajd 2

"Prikaz grafičkih informacija u Delphiju" Plan teme: Načini prikaza grafičkih informacija u Delphiju. Prikaz slika. Prikaz geometrijskih oblika. Izrada grafikona i dijagrama.

slajd 3

1. Metode za prikaz grafičkih informacija. Postoji nekoliko načina za prikaz grafičkih informacija u Delphiju: Izlaz unapred pripremljenih slika (Slika, Komponente oblika); Izrada grafikona i dijagrama (komponenta grafikona, itd.); Programsko formiranje slika (Canvas objekat).

slajd 4

Prikaz slika. O prikazivanju slika pomoću komponente Image raspravljalo se u jednoj od prethodnih tema. Ovdje ćemo razmotriti primjer implementacije najjednostavnije animacije povremenom mijenjanjem prikazane slike u komponentama slike. Idi na primjer.

slajd 5

Prikaz geometrijskih oblika. Prikaz najjednostavnijih geometrijskih oblika na obrascu omogućava komponenta Shape.

slajd 6

Prikaz geometrijskih oblika. Glavna svojstva komponente Shape:

Slajd 7

Prikaz geometrijskih oblika. Možete kreirati jednostavne crteže iz nekoliko komponenti oblika. Programskom promjenom pozicije (.Left, .Top), veličine (.Width, .Height) i boje (Brush.Color) komponenti Shape na crtežu, možete implementirati elemente najjednostavnije animacije. Razmotrimo primjer.

Slajd 8

Izrada grafikona i dijagrama. Dijagrami su namijenjeni za vizualniji prikaz nizova numeričkih podataka, njihov vizualni prikaz i analizu. Primjer. Za izradu grafikona u Delphiju postoji nekoliko komponenti, jedna od njih je komponenta Chart (odjeljak TeeChart Std).

Slajd 9

Izrada grafikona i dijagrama. Pogled na komponentu grafikona nakon što je instalirana na obrascu:

Slajd 10

Izrada grafikona i dijagrama. Pored "Object Inspector", pristup svojstvima komponente Chart se može dobiti otvaranjem posebnog dijaloškog okvira (desno dugme na komponenti \ Uredi grafikon...) Dodavanje serije podataka Promena tipa grafikona

slajd 11

Izrada grafikona i dijagrama. Odabir tipa grafikona:

slajd 12

Izrada grafikona i dijagrama. Postavljanje svojstava za koordinatne osi (Axis):

slajd 13

Izrada grafikona i dijagrama. Podaci za prikaz obično se programski prosljeđuju grafikonu, na primjer: Series1.Clear; (očisti niz) za i:=1 do N do Series1.addxy(i, A[i], ‘’, clGreen); Vrijednost na X-osi Vrijednost na Y-osi Oznaka na X-osi Boja podataka na grafikonu Razmotrite primjer crtanja funkcije y = Sin(x)

Slajd 14

Sljedeće: Lab #13.1. "Prikazivanje slika i geometrijskih oblika, njihova animacija." Zadatak: 1) Razviti aplikaciju za implementaciju najjednostavnije animacije periodično mijenjajući prikazanu sliku u komponentama slike. (Broj slika je najmanje tri, slike birajte sami).

slajd 15

Zadatak: 2) Izmislite i nacrtajte sliku iz komponenti Shape. Programskom promjenom položaja, veličine ili boje komponenti oblika na crtežu implementirajte elemente najjednostavnije animacije.

slajd 16

Sljedeće: Laboratorij #12.2. "Izgradnja grafova i dijagrama". Zadatak: Izmijeniti aplikaciju iz laboratorije 9 (Prikaz podataka u tabeli). Dodajte mogućnost prikaza nekih podataka iz tabele na trakastom ili tortnom grafikonu. 2) Konstruisati graf date funkcije.

Pogledajte sve slajdove

Opis prezentacije na pojedinačnim slajdovima:

1 slajd

Opis slajda:

2 slajd

Opis slajda:

Delphi vizuelno programsko okruženje, poput Windowsa, podržava grafičko korisničko sučelje (GDI - Graphic Delphi Interface). Postoje dva načina za prikaz grafičkih informacija u Delphiju: izlaz unapred pripremljenih slika; crtanje iz programa.

3 slajd

Opis slajda:

Prva metoda se zasniva na korištenju komponenti Image i Shape. Možete koristiti gotovu sliku (piktogram) ili ih sami kreirati pomoću uređivača slika. Drugi način je generiranje slika programski koristeći Canvas objekat.

4 slajd

Opis slajda:

Delphi ima na raspolaganju poseban objekat, koji je formatiran kao Canvas svojstvo. Dostupan je samo dok je aplikacija pokrenuta, tako da se može kontrolisati samo iz programa pisanjem potrebnog koda u Object Pascal jeziku. Ako objekt ima svojstvo Canvas, možete crtati na njegovoj površini. Najprikladniji kandidati za ovu ulogu su sama forma i posebna komponenta PaintBox.

5 slajd

Opis slajda:

Svojstva platna: Pen (pero) - svojstvo za crtanje linija i granica geometrijskih oblika. Olovka prati komande grafičkog kursora i, zauzvrat, ima svoja ugnežđena svojstva: Boja - definiše boju linije (crna podrazumevano); Način - stil crtanja (ima mnogo vrijednosti koje ovdje nisu navedene); Stil – stil linije, koji može imati sljedeće vrijednosti: psSolid – čvrst (podrazumevano); psDosh - isprekidana linija; psDot - isprekidana linija; psDoshDot - tačkasta crtica (i druga svojstva); Widh - debljina linije (podrazumevano 1 piksel);

6 slajd

Opis slajda:

Brush (Brush) - svojstvo za popunjavanje oblika koji imaju sljedeća ugniježđena svojstva: Boja - boja četkice (podrazumevano - bijela); Stil - ornament četkice, koji može imati sljedeće vrijednosti: bsClear - jednobojna boja; bsHorizontalne - horizontalne linije; bsVertikalno - vertikalne linije; bsFDiagonal - lijeve dijagonalne linije; bsBDiagonal - desne dijagonalne linije; bsCross - ćelija; bsDiagCross - kosa ćelija;

7 slajd

Opis slajda:

Font (Font) - svojstvo za prikaz teksta, koje ima sljedeća ugniježđena svojstva: Boja - boja znakova; Visina - visina fonta u pikselima; Ime – naziv fonta; Veličina - veličina fonta; Style - stil fonta, koji može imati sljedeće vrijednosti: fsBold - bold; fsItalic - kurziv fsPodvučeno - podvučeno fsStrikeOut - precrtano;

8 slajd

Opis slajda:

PenPos (Pozicija olovke) - svojstvo za pohranjivanje trenutne pozicije crtanja (određuje poziciju olovke u području crtanja u datom trenutku); Pikseli - svojstvo niza za pisanje i čitanje koordinata pojedinih tačaka područja za crtanje ("platno").

9 slajd

Opis slajda:

Metode Canvas objekta MoveTo(x,y: integer) – pomiče olovku sa trenutne pozicije na tačku sa datim x, y koordinatama bez crtanja linije; LineTo(h.u: ceo broj) - pomera olovku sa trenutne pozicije na tačku sa datim x, y koordinatama, crtajući liniju; Arc(x1, y1, x2, y2, x3, y3, x4, y4: cijeli broj) - crta luk elipse upisan u pravougaonik sa koordinatama (x1, y1) i (x2, y2). Luk je određen polumjerima elipse koja prolazi kroz tačke (x3, y3) i (x4, y4);

10 slajd

Opis slajda:

Chord(x1, y1, x2, y2, x3, y3, x4, y4: cijeli broj) – crta tetivu elipse kako je opisano za Arc metodu; Ellipse(x1, y1, x2, y2: integer) - crta elipsu upisanu u pravougaonik sa gornjim levim uglom u tački (x1, y1) i donjim desnim uglom u tački (x2, y2); FillRect (Rect (x1, y1, x2, y2: cijeli broj)) - ispunjava pravougaonik bojom navedenom u trenutnoj četkici (Brush). Koristi funkciju Rect, koja predstavlja pravougaonik na datim koordinatama;

11 slajd

Opis slajda:

FloodFill(x,y: integer; Boja: TColor; FillStyle: TFillStyle) - popunjavanje trenutnom bojom navedenom u svojstvu Brush: sa FillStyle=fsBorder - zatvoreno područje od tačke sa x, y koordinatama do granice definisane Boja boje; sa FillStyle=fsSurface – ono područje površine koje ima boju Boja; Pie(x1, y1, x2, y2, x3, y3, x4, y4: cijeli broj) - crta sektor elipse upisan u pravougaonik sa koordinatama (x1, y1) i (x2, y2). Sektor je definisan sa dva poluprečnika elipse koji prolaze kroz tačke (x3, y3) i (x4, y4);

12 slajd

Opis slajda:

Polilinija (Points: niz TPoint) – crta poliliniju uzastopnim povezivanjem tačaka niza Points; Poligon (Points: niz TPoint) - crta poligone uzastopnim povezivanjem tačaka niza Points. Razlikuje se od metode polilinije po tome što automatski povezuje kraj polilinije sa njenim početkom; Pravougaonik (x1, y1, x2, y2: ceo broj) - crta pravougaonik sa gornjim levim uglom u tački (x1, y1) i donjim desnim uglom u tački (x2, y2);

13 slajd

Opis slajda:

Retresh – metoda se poziva kada sliku treba ponovo nacrtati; RoundRect (x1, y1, x2, y2, x3, y3: cijeli broj) - Crta pravougaonik sa zaobljenim uglovima. Uglovi su nacrtani kao četvrtine elipse širine x3 i visine y3; TextOut (x, y:integer, Text:String) - izlaz teksta naveden u parametru Text. Tekst se uklapa u pravougaonik čiji gornji levi ugao ima koordinate x, y.

LABORATORIJSKI RAD

PREDMET: « Grafika uDelphi- konstrukcija najjednostavnijih
geometrijski oblici"

Kratke informacije iz teorije

Delphi pruža programeru tri načina za prikaz grafike:

    crtanje dok je program pokrenut

    korištenje unaprijed kreirane grafike

    kreiranje slika pomoću grafičkih komponenti

Za crtanje su kreirane posebne klase koje pružaju alate i metode za crtanje: alati su opisani u tri klase - Tfont, Tpen, Tbrush; područje za crtanje i metode su obezbeđene od strane Tcanvas klase.

KlasaTfont- postavlja karakteristike fonta koji se koristi za prikaz teksta na platnu. Svojstva klase su opisana u odjeljku "Osnovna svojstva dostupna za većinu komponenti".

Klasatpen– postavlja karakteristike olovke (olovke) kojom se crtaju linije.

Svojstva klasa tpen:

boja:Tcolor - boja linije (crna prema zadanim postavkama)

Širina:integer – debljina linije u pikselima;

stil = (psSolid, psDash, psDot, psdashDot, psClear) - definira stil linije (puna, isprekidana, tačkasta, crtica, nevidljiva)

KlasaTbrush– postavlja karakteristike kista koji se koristi za slikanje površina slike.

Svojstva klasa Tbrush:

boja:Tcolor - boja kista (podrazumevano je bijela)

stil- ornament četkice, može imati sljedeće vrijednosti:

BsSolid - jednobojna boja

BsClear - bez punjenja

BsVertical - okomite linije

BsBdiagonal - desne dijagonalne linije

BsDiagCross - kosa ćelija

BsHorizontalne - horizontalne linije

BsFdiagonal - lijeve dijagonalne linije

BsCross - ćelija

Klasatkanine- definira površinu na kojoj se postavlja kreirana slika i alate pomoću kojih se slika kreira: font, olovka, četkica.

Prema zadanim postavkama, cjelokupno klijentsko područje obrasca koristi se kao radno područje (platno, "platno") (bez naslova, glavnog menija i linija za pomicanje obrasca), ali možete dodijeliti manje radne površine unutar obrasca koristeći komponente kutija za farbanje ili Slika. Porijeklo platna je gornji lijevi ugao radnog područja, širina radnog područja je određena svojstvom ClientWidth, visina - vlasništvo ClientHeight.

Svojstva klasa tkanine:

Platno:Tcanvas - definira područje crtanja

Četka:Tbrush - kist za slikanje zatvorenih oblika

Font:Tfont - font za prikaz teksta na platnu

olovka:Tpen - olovka (olovka) za crtanje

PenPos:Tpoint - trenutna pozicija nevidljivog kursora na platnu

Komentar : Tip Tpoint - definiran na sljedeći način:

Unesite Tpoint = zapis

Pikseli: Tcolor - postavlja boje piksela platna, X, Y - koordinate piksela. Svojstvo Pixels je korisno za crtanje grafikona koristeći tačke odabrane boje.

Glavne metode klase TCanvas

    procedura MoveTo(x,y:integer); - pomiče olovku bez povlačenja linije do tačke sa koordinatama (x, y).

    procedura LineTo(x,y:integer); - crta liniju od trenutne tačke do tačke sa koordinatama (x, y).

Primjer : Nacrtajte plavu dijagonalnu liniju na obliku od gornjeg lijevog ugla oblika do donjeg desnog ugla.

Pen.color:= clblue;

MoveTo(0,0); LineTo(ClientWidth, ClientHeight);

    procedura Pravougaonik(x1,y1,x2,y2:cijeli broj); - crta pravougaonik: x1, y1 - koordinate gornjeg lijevog ugla; x2, y2 - koordinate donjeg desnog ugla.

Primjer : Nacrtajte žuto ispunjen kvadrat veličine 60 px u sredini oblika.

var Xc,Yc: cijeli broj; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

Canvas.rectangle(xc-30,Yc-30,xc+30,Yc+30);

    procedura Elipsa(x1,y1,x2,y2:cijeli broj); - crta elipsu upisanu u pravougaonik sa navedenim koordinatama.

Primjer : nacrtajte elipsu koja je upisana u komponentu PaintBox.

PaintBox1.Canvas.Pen.Width:=4; //širina linije = 4 piksela

PaintBox1.Canvas.Ellipse(0,0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

    procedura Poligon(); - crta zatvoreni poligon, dat nizom koordinata.

Primjer : nacrtajte ispunjen romb koji povezuje sredine stranica oblika

Var Xc,Yc:cijeli broj; // formiraju koordinate centra klijentskog područja

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // narandžasta boja senčenje

Canvas.Polygon();

kraj;

    procedura Arc(x1,y1,x2,y2,x3,y3,x4,y4:cijeli broj); - prikazuje luk elipse omeđen pravokutnikom (x1, y1, x2, y2). Luk se prikazuje od tačke sa koordinatama (x3,y3) do tačke sa koordinatama (x4,y4) protiv kazaljka sata.

Primjer : nacrtajte luk elipse koji povezuje sredinu gornje strane komponente
PaintBox sa sredinom desne strane.

Procedura Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: Integer;

Sa PaintBox1 radi

Canvas.Pen.Color:= clWhite;

Canvas.Pen.Width:= 3;

Canvas.rectangle(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

X3:= širina klijenta div 2;

X4:=Širina klijenta;

Y4:= Visina klijenta div 2;

Canvas.Pen.Color:= clMaroon;

Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4);

kraj;

    procedura Akord(x1,y1,x2,y2,x3,y3,x4,y4:cijeli broj); - crta tetivu - prava linija koja spaja 2 tačke elipse: tačku sa koordinatama (x3, y3) sa tačkom (x4, y4).

Primjer : zamijenite u primjeru koji je dat za ARC metodu, akord metodu i dobijete ovaj rezultat.

    procedura Pita(x1,y1,x2,y2,x3,y3,x4,y4:cijeli broj); - crta segment elipse koji povezuje centar elipse sa koordinatama (x3,y3) i (x4,y4).

Primjer : prisutan u primjeru datom za ARC metodu, PIE metodu i dobijete ovaj rezultat.

    procedura textout(x,y:integer;Text:string); - prikazuje string proslijeđen u parametru Text u pravougaonik, čiji je gornji lijevi ugao specificiran sa x,y koordinatama. Karakteristike fonta se postavljaju pomoću alata Font.

Primjer : upišite naziv izgrađenog grafa na dnu obrasca.

Canvas.Font.Height:=20 ; // visina karaktera 20 piksela

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, 'Graf funkcije SIN(X)');

Grafičke komponente

Delphi nudi niz komponenti koje su gotove za poboljšanje korisničkog interfejsa. Ove komponente se postavljaju na stranicu Dodatno I Sistem paleta komponenti.

KomponentaSlika(RazredVrijeme) – dizajnirano za prikaz grafičkih slika pohranjenih u vanjskim datotekama s ekstenzijama:

    Ikona (ikona, piktogram);

    bmp (bitmap, bitmap);

    Wmf, .emf (metadatoteka);

    Jpg, .jpeg (JPEG komprimirana slika).

Main svojstva :

autosize:boolean - ako je tačno, komponenta prilagođava svoju veličinu veličini učitane slike; false po defaultu.

Rastezanje:boolean - ako je istinito, učitana vrijednost zauzima cijelu površinu komponente; default je netačan.

Platno:Tcanvas - Koristi se za crtanje unutar komponente za vrijeme rada.

slika:Tpicture - Određuje sliku postavljenu u komponentu.

Main metode klasa slika:

procedura LoadFromFile(ime datoteke:string); - učitava sliku u komponentu iz datoteke pod nazivom Ime datoteke.

procedura SaveToFile(ime datoteke:string); - sprema sliku iz komponente u datoteku pod nazivom Ime datoteke.

Komponentakutija za farbanje - definira pravokutnu površinu za crtanje. Glavna nekretnina je Platno, dostupne su sve metode klase Tcanvas, ona nema nezavisna svojstva.

Primjer : nacrtajte žutu elipsu upisanu u komponentu PaintBox1.

Procedura Tform1Button1Click(sender:Tobject);

Sa PaintBox1.Canvas učiniti

Brush.Color:=clyellow;

Ellipse(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

kraj;

KomponentaBitBtn bitmap dugme

BitBtn dugme, za razliku od standardnog, može sadržati, pored naziva (Caption), i sliku navedenu svojstvom Glif. Postoji skup standardnih BitBtn dugmadi, sa unapred definisanim svojstvima (sa određenom slikom, natpisom i svrhom) - tip standardnog dugmeta se bira kroz svojstvo vrsta. Vrsta=(bkCustom, bkAbort,bkCancel, bkClose...)

Zadatak broj 1

Kreirajte aplikaciju koja sadrži dvije komponente slike i 4 gumba na glavnom obrascu ("Prenesi sliku", "Izgradi geometrijski oblik", "Promijeni boju", "Izlaz") i omogućava vam:

a) učitati u komponentu Image1 grafičku sliku koju je odabrao korisnik na način da slika zauzima cijelo područje komponente Image.

b) ispod komponente Image1 prikazati natpis „Ovo je slika iz datoteke.

(za bilo koje mjerenje dimenzija i položaja komponenteSlika1 natpis mora
biti striktno ispod komponente).

c) nacrtajte geometrijski oblik unutar komponente Image2: ispunjen segment elipse koji povezuje sredinu komponente slike sa sredinom donje i desne strane komponente slike.

(sa bilo kakvom promjenom veličine i položaja komponenteSlika2, figura mora biti pravilno izgrađena, tj. prema zadatku u vezi sa komponentomSlika2)

d) promijenite boju linije slike nacrtane u Image2 na zahtjev korisnika pomoću komponente ColorDialog.

Zadatak broj 2

Kreirajte aplikaciju koja vam omogućava nasumično postavljanje više oznaka u komponentu slike (na primjer, riječ "Ura!"). Za implementaciju koristite generator slučajnih brojeva Randomize i funkciju Random.

Korisnik mora unijeti dimenzije komponente slike, riječ prikazanu na slici i broj riječi.

Zadatak broj 3

Kreirajte aplikaciju koja vam omogućava da odaberete ime geometrijskog oblika iz ListBox-a i nacrtate odabrani oblik u komponenti Slika. Boja oblika se bira iz komponente RadioGroup.

Zadatak broj 4

Podijelite komponentu PaintBox1 na 4 jednaka dijela, obojite svaki dio drugom bojom, na primjer: plava, žuta, zelena, crvena.

Pored svakog ugla PaintBox1 upišite koordinate tog ugla (u odnosu na ishodište oblika na kojem se nalazi komponenta PaintBox1).

Zadatak broj 5

WITH

odaberite tip nacrtane figure iz komponente Radiogroup1, boju ispune iz komponente Radiogroup2 i nacrtajte odabranu figuru u komponenti Slika.

Zadatak broj 6

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Podijelite komponentu PaintBox1 na 2 jednaka dijela, unutar svakog dijela nacrtajte elipsu ispunjenu bojom koju je korisnik odabrao u ColorDialog-u.

Zadatak broj 7

WITH kreirajte aplikaciju koja vam omogućava:

izaberite ime geometrijske figure sa liste ListBox i nacrtajte izabranu figuru u komponenti Slika. Oblik treba popuniti bojom koju je odabrao korisnik u komponenti ColorDialog ako je odabrano Da u komponenti RadioGroup.

Zadatak broj 8

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Podijelite komponentu PaintBox1 na 4 jednaka dijela, unutar svakog dijela nacrtajte drugačiji geometrijski oblik (elipsu, romb, trokut i pravougaonik). Boju svakog oblika odabire korisnik u ColorGrid-u.

Zadatak broj 9

izaberite ime geometrije iz ListBox-a
oblike (elipsa, romb, pravougaonik) i crtanje
odabrani oblik u komponenti Slika. Lokacija
oblici u komponenti Slika (I četvrtina, II četvrtina,

III ili IV kvartal) i odabire se boja ispune slike
od komponenti RadioGroup-a.

Zadatak broj 10

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Osigurajte da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca.

Podijelite komponentu PaintBox1 na 4 jednaka dijela, unutar svakog dijela nacrtajte geometrijski oblik koji je odabrao korisnik u Combobox-u (elipsa, romb, trokut i pravougaonik). Boju oblika odabire korisnik u ColorBoxu.

Zadatak broj 11

Kreirajte aplikaciju koja vam omogućava da:

izaberite poziciju crteža iz komponente Radiogroup

u komponenti Slika pravouglog trougla, postavite
boja ispune oblika ili boja obrisa, ovisno o tome
omogućavanje dugmadi u polju za potvrdu. Izbor boje preko
ColorGrid komponenta.

Zadatak broj 12

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Osigurajte da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca.

Podijelite komponentu PaintBox1 na 2 jednaka dijela, unutar jednog od dijelova nacrtajte geometrijsku figuru koju je korisnik odabrao u Combobox-u (elipsa, romb, trokut i pravougaonik). Boju oblika odabire korisnik u ColorBoxu.

Na primjer, možete promijeniti boju obrasca ovako:

form1.Color:= ColorBox1.Colors;

Zadatak broj 13

Kreirajte aplikaciju koja vam omogućava da:

a) nacrtajte kvadrat u sredini oblika (veličinu stranice kvadrata unosi korisnik). Osigurajte da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca.

b) podijelite kvadrat s jednom ili dvije dijagonale, ovisno o uključivanju dugmadi u polju za potvrdu, i obojite svaki rezultirajući trougao drugom bojom. Izbor boje vrši korisnik.

Zadatak broj 14

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Osigurajte da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca.

Podijelite komponentu PaintBox1 na 2 jednaka dijela, nacrtajte romb unutar jednog dijela i nacrtajte bilo koji trokut unutar drugog dijela. Boju oblika odabire korisnik u ColorBoxu.

Na primjer, možete promijeniti boju obrasca ovako:

form1.Color:= ColorBox1.Colors;

Zadatak broj 15

Kreirajte aplikaciju koja vam omogućava da:

a) postaviti dimenzije komponente slike horizontalno i vertikalno da budu iste i jednake broju koji je unio korisnik sa tastature;

(pod uvjetom da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca)

b) komponentu slike podijelite na 4 jednaka kvadrata sa dvije plave linije;

c) unutar svakog rezultujućeg kvadrata nacrtajte krug upisan u njega (korisnik je dozvoljeno da odabere boju krugova kroz dijalog za odabir boje).

Zadatak broj 16

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Osigurajte da veličina strane ne može biti tekst, ne može biti negativan broj i ne može premašiti manju veličinu obrasca.

Podijelite komponentu PaintBox1 na 9 jednakih dijelova i obojite svaki rezultirajući pravougaonik šahovnice. Boju ispune odabire korisnik u ColorBoxu.

Na primjer, možete promijeniti boju obrasca ovako:

form1.Color:= ColorBox1.Colors;

Zadatak broj 17

Postavite dve komponente slike i četiri dugmeta na formu: Boja linije, Boja popune, Ok i Izlaz; i komponentu Uredi.

Kada kliknete na dugme OK, Slika 1 crta kvadrat sa stranicom X, a Slika 2 crta pravougaoni trougao sa jednakim kracima, od kojih svaki ima dužinu X.

Tem trougla se poklapa sa ishodištem slike2. Jedan od vrhova kvadrata poklapa se sa ishodištem slike1.

Dugme OK postaje dostupno samo kada se izabere boja linije i boja ispune za crtanje oblika.

X - bira nasumično, koristeći funkciju Random i vrijednost X vrijednosti treba biti prikazana u komponenti Edit.

Zadatak broj 18

Kreirajte aplikaciju koja omogućava korisniku da postavi dimenzije komponente PaintBox1 (u pikselima).

Podijelite komponentu PaintBox1 na 4 jednaka dijela, unutar dijela koji je odabrao korisnik treba napraviti popunjen krug čiju veličinu postavlja korisnik. Korisnik bira boju ispune u ColorBoxu.

Na primjer, možete promijeniti boju obrasca ovako:

form1.Color:= ColorBox1.Colors;

Lista komponenti za prikaz grafičkih informacija

Za prikaz grafičkih informacija, Delphi biblioteka obezbeđuje komponente, čija je lista data u tabeli 4.1.

Tabela 4.1 Piktogram komponenti grafičkog prikaza informacija

Komponenta

Stranica

Opis

slika (slika)

Koristi se za prikaz grafike: ikone, bitmape i metadatoteke.


PaintBox (prozor za crtanje)

Koristi se za kreiranje oblasti na formi u kojoj možete crtati.


DrawGrid (tabela za crtanje)

Koristi se za prikaz netekstualnih podataka u redovima i kolonama.


grafikon (grafikoni i grafikoni)

Komponenta pripada TChart porodici komponenti koje se koriste za kreiranje grafikona i grafikona.


Također možete prikazati i unijeti grafičke informacije na površinu bilo kojeg platna.

Platno Platno nije komponenta, pa ga, striktno govoreći, ne treba razmatrati u okviru ove knjige. Ali pošto mnoge komponente, posebno forme, imaju platno i platno pruža mogućnost prikaza različitih grafičkih informacija, ipak je preporučljivo dati neke početne informacije o platnu.

Platno je područje komponente gdje možete crtati ili prikazati gotove slike. Sadrži svojstva i metode koje uvelike pojednostavljuju Delphi grafiku. Sve složene interakcije sa sistemom su skrivene za korisnika, tako da osoba koja je potpuno nesofisticirana u kompjuterskoj grafiki može crtati u Delphiju.

Svaka tačka platna ima koordinate X I Y. Koordinatni sistem platna, kao i svuda u Delphiju, počinje u gornjem levom uglu platna. Koordinate X povećava pri kretanju s lijeva na desno, a koordinata Y- kada se krećete odozgo prema dolje. Koordinate se mjere u pikselima. Piksel je najmanji element na površini crteža kojim se može manipulirati. Najvažnije svojstvo piksela je njegova boja.

Platno ima svojstvo Pikseli. Ovo svojstvo je 2D niz koji kontrolira boje platna. Na primjer, Platno. Pikseli odgovara boji piksela 10. slijeva i 20. od vrha. Niz piksela se može tretirati kao bilo koje svojstvo: promijenite boju dajući pikselu novu vrijednost ili odredite njegovu boju iz vrijednosti pohranjene u njemu. Na primjer, Platno. Pikseli:=0 ili Platno. Pikseli :=clCrna- ovo je zadatak za crni piksel.

Nekretnina Pikseli može se koristiti za crtanje na platnu. Pokušajmo nacrtati piksel po piksel graf sinusnog vala na platnu oblika. Da biste to učinili, u obrascu za obradu događaja OnPaint(crtež) možete umetnuti sljedeći kod:

Tform1. FormPaint(Pošiljalac: TObject);

var,Y: pravi; // koordinate funkcije,PY: longint; // koordinate piksela

početi:=clWhite;

za PX:=0 to ClientWidth uradi

(X - plot argument,

:=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - koordinate piksela,

:=trunc(ClientHeight - (Y+1) *ClientHeight/2);

(Postavlja boju odabranog

piksel (o svjetlini) ). Pikseli:=0;

kraj;

Pokrenite ovu test aplikaciju i vidjet ćete rezultat prikazan na slici 4.1 a. Ispao je sinusoidni graf, iako ne baš dobar, jer. razbijene na pojedinačne tačke - piksele.

Platno - objekat klase TCanvas ima mnogo metoda koje vam omogućavaju da crtate grafikone, linije, oblike koristeći svojstvo olovka- pero. Ovo svojstvo je objekat, koji zauzvrat ima niz svojstava. Jedna od njih je imovina koju već poznajete boja- boja kojom je crtež primijenjen. Druga imovina je Širina(širina linije). Širina je navedena u pikselima. Zadana širina je 1.

Nekretnina stil definira tip linije. Ovo svojstvo može imati sljedeće vrijednosti:

Platno ima svojstvo PenPos tip TPoint(cm .). Ovo svojstvo određuje trenutni položaj olovke u koordinatama platna. Pomicanje olovke bez povlačenja linije, tj. promijeniti PenPos, proizveden metodom platna Premjesti na(X,Y). ovdje ( X, Y) - koordinate tačke u kojoj se olovka kreće. Ova trenutna tačka postaje početna tačka iz koje se vrši metoda LineTo(X,Y) možete nacrtati liniju do tačke sa koordinatama ( X,Y). Ovo pomera trenutnu tačku do krajnje tačke linije i novog poziva LineToće izvući tačku iz ove nove trenutne tačke.

Pokušajmo olovkom nacrtati sinusni graf iz prethodnog primjera. U ovom slučaju, rukovalac događaja obrasca OnPaint može izgledati ovako:

procedura Tform1. FormPaint(Pošiljalac: TObject);

var,Y: pravi; // koordinate funkcije,PY: longint; // koordinate piksela

početi:=clWhite;. MoveTo(0,ClientHeight div 2);

za PX:=0 to ClientWidth uradi

(X - plot argument,

odgovara pikselu sa px koordinatom):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - koordinate piksela,

odgovara Y koordinati):=trunc(ClientHeight - (Y+1) *ClientHeight/2);

(Na grafikonu je nacrtana linija). LineTo(PX,PY);

Rezultat aplikacije u ovoj verziji možete vidjeti na slici 4.1 b. Kao što vidite, kvalitet grafikona je značajno poboljšan.

Olovka može crtati ne samo ravne linije, već i oblike. Za kompletnu listu metoda platna zasnovanih na olovci, pogledajte Delphi-jevu ugrađenu pomoć. U međuvremenu, kao primjer navešćemo samo jedan od njih - Elipsa A koji crta elipsu ili krug. Deklarisano je kao

procedura Elipsa(X1, Y1, X2, Y2: cijeli broj);

gdje parametri X1, X2, Y1, Y2 definirati koordinate pravokutnika koji opisuje elipsu ili krug. Na primjer, operater

Elipsa (10, 40, 20, 50);

nacrtat će krug prečnika 10 i koordinatama centra (15, 45).

Oblici se uglavnom ne crtaju prazni, već se popunjavaju pomoću svojstva canvas Četka- četka. Nekretnina Četka je objekat koji zauzvrat ima niz svojstava. Nekretnina boja definira boju ispune. Nekretnina stil definira obrazac punjenja (šrafiranje). Zadana vrijednost stil jednaki bsSolid, što znači jednobojna boja boja.

U olovci olovka Postoji još jedna nekretnina koju još nismo razmatrali. Ova nekretnina je način rada(režim). Zadana vrijednost Način = pmCopy. To znači da su linije nacrtane u boji navedenoj u svojstvu boja. Ali mogući su i drugi načini, u kojima se ne uzima u obzir samo boja boja, ali i boju odgovarajućih piksela pozadine. Najzanimljiviji od ovih načina je mod pmNotXor- dodavanje s pozadinom inverznim isključivim OR. Ako je ovaj način postavljen, onda ponovno crtanje istog oblika na istom mjestu na platnu uklanja prethodno nacrtanu sliku i vraća boje piksela koje su bile prije prvog crtanja oblika.

Ova karakteristika režima pmNotXor može se koristiti za kreiranje jednostavnih animacija. Dovoljno je nešto nacrtati, zatim obrisati crtež, precrtati ga malo izmijenjenog - i izgleda da će crtež oživjeti.

Pokušajte sami napraviti jednostavnu animaciju - pokretni krug. Pokrenite novu aplikaciju i idite na odjeljak implementacija ubaci oglas

X,Y: cijeli broj;

Ovo će uvesti globalne varijable X I Y- trenutne koordinate slike.

U formi događaja OnPaint umetnite izjave

Četka. Boja:=clWhite;:=clWhite;. Olovka. Mode:=pmNotXor;

Prvi od ovih operatora postavlja boju kista na bijelu. Četka. Tako će vaš krug iznutra biti obojen bijelom bojom. Druga izjava postavlja boju pozadine površine obrasca na bijelu.

Treća izjava postavlja način rada olovke pmNotXor, što će vam omogućiti da obrišete staru sliku prije crtanja nove.

Čak i najjednostavnija animacija zahtijeva sinhronizaciju. Inače, brzina kretanja će biti određena brzinom računara. Stoga prenesite komponentu u obrazac tajmer- tajmer iz sistema. Ova komponenta je opisana u odjeljku 5.7 .

To možete vidjeti tamo Detaljan opis. Za sada, postavite njegovo svojstvo Interval jednako, na primjer, 30 (ovo je vrijeme zadržavanja u milisekundama, ali stvarno vrijeme zadržavanja će biti duže - pogledajte odjeljak 5.7) i postavite svojstvo Omogućeno jednaka false(to znači da se tajmer neće automatski pokrenuti kada se aplikacija pokrene).

U rukovatelju događaja ove komponente OnTimer umetnite izjave

// Obriši staru sliku. Elipsa(X-5, Y, X+5, Y-1Q);(X);

// Nacrtaj novu sliku. Elipsa (X-5, Y, X+5, Y-10);

// Zaustavljanje kada se dostigne kraj obrasca

ako(X >= širina klijenta-20) onda. omogućeno:=false;

Prvi od ovih operatora crta krug na mjestu gdje je ranije nacrtan, tj. briše prethodnu sliku.

Posljednja izjava zaustavlja sliku na rubu obrasca.

Sada dodajte dugme u obrazac. dugme i u rukovaocu klika na njega postavite operatore

X: =10;: =100;. Elipsa (X-5, Y, X+5, Y-10); omogućeno:=true;

Prva dva operatora postavljaju početne koordinate kruga. Treći iskaz crta krug na njegovoj početnoj poziciji, a četvrti pokreće mjerač vremena.

Prevedite aplikaciju, pokrenite je, kliknite na dugme. Vidjet ćete sliku kruga koja se kreće preko obrasca s lijeva na desno. A zatim povežite svoju maštu i transformirajte ovu ne baš zanimljivu aplikaciju u nešto uzbudljivije.

Na platnu možete prikazati ne samo programski kreirane slike, već i slike pohranjene u grafičkim datotekama. Samo platno samo po sebi nema metodu za učitavanje slike iz datoteke. Stoga se datoteka mora učitati u neki drugi grafički objekt koji može primati informacije iz grafičkih datoteka. A zatim prepišite sliku iz ovog objekta na platno koristeći metodu platna Draw. Njegov opis:

Crtanje (X, Y: Integer; Graphic: TGraphic);

Evo parametara X I Y odrediti koordinate gornjeg lijevog ugla položaja slike na platnu, a Graphic- objekt koji pohranjuje informacije. Takav objekat može biti, na primjer, objekt tipa TBitMap, namijenjen za pohranjivanje bitnih matrica. Da vidimo kako to sve izgleda u praksi.

Otvorite novu aplikaciju, prevucite komponentu na obrazac OpenPictureDialog sa stranice Dijalozi (ovo je komponenta dijaloga za otvaranje grafičkih datoteka - pogledajte odjeljak 8.2 ) i dugme dugme. Pošta OpenPictureDialog bilo gdje u obrascu, budući da ova komponenta nije vizualna, i postavite dugme na dno obrasca. Unesite sljedeći kod u obrađivač klika na dugme:

procedura Tform1. Button1Click(Pošiljalac: TObject);

var:TBitMap;

// Odabir grafičke datoteke od strane korisnika

ako OpenPictureDialog1. Izvrši onda

// Kreirajte BitMap objekt tipa TBitMap:=TBitMap. stvoriti;

// Prenesi sliku u formu platna. Crtanje(10, 10, bitmap);

// Uništiti BitMap objekt. besplatno;

kraj;

Ovaj kod kreira privremeni objekat tipa TBitMap Sa imenom bitmap. Zatim se poziva dijalog za otvaranje grafičke datoteke. OpenPictureDialog1 i, ako je korisnik odabrao datoteku, onda se ona učitava bitmap metoda LoadFromFile. Zatim metoda Draw učitana slika se kopira na platno u području sa koordinatama gornjeg lijevog ugla (10,10). Nakon toga privremeni objekat bitmap je uništena.

Pokrenite svoju aplikaciju i kliknite na njeno dugme. Vidjet ćete da možete učitati bilo koju vrstu grafičke datoteke. bmp i biće prikazan na platnu forme (vidi sliku 4.2 a). Grafičke datoteke se mogu naći u direktoriju Images. U Delphi 5 i 4 obično se nalazi u direktoriju. \program files\Common Files\Borland Shared. U Delphiju 3 nalazi se u direktoriju. \program files\Borland\Delphi 3, au Delphiju 1 - u direktoriju Delphi 16. Direktorij Images sadrži, posebno, poddirektorij \Images\Splash\16Color\, u koji se pohranjuje datoteka učitana u primjeru na slici 4.2.

Napravili ste lijepu aplikaciju za pregled grafičkih datoteka. Ali sada pokušajmo da vidimo njegov glavni nedostatak. Bez zatvaranja aplikacije idite na neki drugi program, na primjer, vratite se u Delphi. Zatim, ne radite ništa tamo, vratite se na svoju pokrenutu aplikaciju. Ako je prozor programa koji ste ostavili potpuno prekrivao prozor vaše aplikacije, onda kada se vratite na njega vidjet ćete da je slika u prozoru nestala. Ako se prozor vaše aplikacije samo djelomično preklapao, onda kada se vratite na aplikaciju, možete vidjeti rezultat sličan onom prikazanom na slici 4.2 b.

Možete vidjeti da ako se prozor neke druge aplikacije privremeno preklapa s prozorom vaše aplikacije, onda je slika nacrtana na platnu obrasca oštećena. Hajde da vidimo kako da ispravimo ovaj nedostatak.

Ako je prozor prekriven i slika je oštećena, operativni sistem govori aplikaciji da se nešto promijenilo u okruženju i da aplikacija treba da preduzme odgovarajuće radnje. Čim je potrebno ažuriranje prozora, za njega se generiše događaj OnPaint. U rukovatelju ovog događaja (u našem slučaju događaj forme) trebamo ponovo nacrtati sliku.

Ponovno crtanje se može izvršiti na različite načine, ovisno o aplikaciji. U našem primjeru, mogli bismo napraviti deklaraciju varijable bitmap(operater var BitMap: TBitMap) izvan gornje procedure, tj. učinite ovu promenljivu globalnom tako što ćete je postaviti direktno u sekciju implementacija. Operater bitmap. Besplatno može se premjestiti u obrascu za obradu događaja OnDestroy koji se dešava kada se aplikacija zatvori. Tada ćete, tokom cijelog vremena izvršavanja vaše aplikacije, imati kopiju slike u komponenti bitmap i samo treba da uđete u obrađivač događaja OnPaint formira samo jednu izjavu:

Crtanje(10, 10, bitmap);

Učinite to i vidjet ćete da se slika na obrascu ne pogoršava nikakvim preklapanjem prozora.

Pored razmatrane metode Draw canvas ima drugu metodu kopiranja CopyRect:

CopyRect(Odredište: TRect; Platno: TCanvas; Izvor: TRect);

Metoda kopira navedeni parametar Izvor područje slike na platnu izvora slike Platno na navedeno Dest područje ovog platna. Tip TRect karakterizira pravougaone površine Izvor I Dest, već opisano u odjeljku 3.2 .

Na primjer, operater

CopyRect(MyRect2, Bitmap.Canvas, MyRect1);

kopije na platnu obrasca u tom području MyRect2 slika iz oblasti MyRect1 komponentno platno bitmap.

Metoda kopiranja CopyRect proizvedeno u načinu koji je postavilo svojstvo CopyMode. Po defaultu, ovo svojstvo je postavljeno na cmSrcCopy, što znači jednostavno zamjenu slike koja je prethodno bila sadržana u opsegu Dest, na kopiranoj slici. Druge moguće vrijednosti CopyMode omogućavaju vam da kombinujete slike, ali njihovo razmatranje je izvan okvira ove knjige.

Ograničićemo se na ove osnovne informacije o izlazu grafičkih informacija na platnu. Odjeljak 3.2 prijavljena je informacija o izlazu na platno teksta. Općenito, platno je složen objekat koji ima mnogo više svojstava i metoda. Ali ovo zahtijeva detaljnu raspravu koja je izvan okvira ove knjige. Sledeća knjiga u seriji Sve o Delphiju će detaljnije istražiti ova pitanja.

Komponenta prozora koja ima svojstvo Platno- platno.

Image i PaintBox komponente

Komponente Slika I kutija za farbanje predstavljaju neku ograničenu površinu sa platnom, na koju se mogu unositi slike, kao što je opisano u odjeljku 4.2 . Istovremeno, komponenta kutija za farbanje, zapravo, ne daje ništa novo u odnosu na crtanje na platnu forme. Crtanje dalje kutija za farbanje umjesto forme, nema nikakvu prednost, osim možda malog olakšanja u rasporedu jednog ili više crteža u području prozora.

Ali pored ovih mogućnosti, komponenta Slika postoje svojstva koja vam omogućavaju rad sa različitim tipovima grafičkih datoteka.Podržava tri tipa fajlova - bitmape, ikone i metadatoteke. Sva tri tipa datoteka pohranjuju slike; razlika je samo u načinu na koji su pohranjeni u fajlovima iu načinu pristupa njima. Bitmap (datoteka sa ekstenzijom . bmp) prikazuje boju svakog piksela na slici. Istovremeno, informacije se pohranjuju na način da svaki računar može prikazati sliku u rezoluciji i broju boja koje odgovaraju njegovoj konfiguraciji.

Piktogrami (datoteke sa ekstenzijom . ico) su male bitne matrice. Široko se koriste za označavanje ikona aplikacija, u brzim dugmadima, u stavkama menija, na raznim listama. Način pohranjivanja slika u ikone sličan je pohranjivanju informacija u bitmape, ali postoje razlike. Konkretno, ikona se ne može skalirati, ona zadržava veličinu u kojoj je kreirana.

Metadatoteke ne pohranjuju niz bitova koji čine sliku, već informacije o tome kako je slika stvorena. Oni pohranjuju sekvence naredbi za crtanje koje se mogu ponoviti prilikom ponovnog kreiranja slike. Ovo čini takve datoteke općenito kompaktnijima od bitmapa.

Komponenta Slika omogućava vam da prikažete informacije sadržane u grafičkim datotekama svih navedenih tipova. Za ovo, njegovo vlasništvo slika- objekt tipa TPicture.

Sl.4.3 Prozor za uređivanje slika


Da biste se upoznali sa ovim svojstvom, otvorite novu aplikaciju i prenesite komponentu u obrazac Slika. Rastegnite ga ili postavite njegovo svojstvo Poravnajte jednaka alClient tako da zauzima cijelo područje klijenta obrasca. Kliknite na dugme sa trotočkom pored svojstva slika u prozoru Object Inspector ili samo dvaput kliknite na Slika. Pred vama će se otvoriti prozor Picture Editor (Slika 4.3), koji vam omogućava da učitate u svojstvo slika neki grafički fajl (dugme Load), kao i sačuvati otvorenu datoteku pod novim imenom ili u novom direktorijumu. Kliknite na Učitaj da učitate grafičku datoteku. Videćete prozor za otvaranje grafičke datoteke, prikazan na slici 4.4. Kako pomerate kursor po listi grafičkih datoteka, u desnom prozoru se prikazuju slike koje se nalaze u njima, a iznad njih - brojevi koji karakterišu veličinu slika. Možete odabrati bilo koju vrstu grafičke datoteke koja vam je potrebna. Podsjetimo da grafičke datoteke isporučene s Delphijem možete pronaći u direktoriju Images. U Delphi 5 i 4 obično se nalazi u direktoriju. \program files\Common Files\Borland Shared. U Delphiju 3 nalazi se u direktoriju. \program files\Borland\Delphi 3, au Delphi 1, u direktoriju Delphi 16. Nakon što se datoteka učita, kliknite OK u prozoru Picture Editor i u vašoj komponenti Slika biće prikazana slika koju ste odabrali. Možete pokrenuti svoju aplikaciju i diviti joj se. Međutim, već vidite sliku, čak i bez pokretanja aplikacije.

Kada ste učitali sliku iz datoteke u komponentu tokom dizajna Slika, ne samo da ga prikazuje, već i sprema u aplikaciju. Ovo vam daje mogućnost da pošaljete svoju aplikaciju bez posebne grafičke datoteke. Međutim, kako ćemo kasnije vidjeti, u Slika također možete učitati vanjske grafičke datoteke dok je aplikacija pokrenuta.

Vratimo se na razmatranje svojstava komponente Slika.

Ako postavite svojstvo autosize V istinito, zatim veličinu komponente Slika automatski će odgovarati veličini slike koja se nalazi u njemu. Ako je imovina autosize ugrađen u false, onda slika možda neće stati u komponentu ili, obrnuto, površina komponente može biti mnogo veća od površine slike.

Još jedna nekretnina - Rastezanje omogućava vam da prilagodite ne komponentu veličini slike, već sliku veličini komponente. Instaliraj autosize V false, rastezanje ili smanjivanje veličine komponente Slika i instalirati Rastezanje V istinito. Vidjet ćete da će crtež zauzeti cijelu površinu komponente, ali je malo vjerovatno da će realno postaviti dimenzije Slika tačno proporcionalno veličini slike, slika će biti izobličena. Instaliraj Rastezanje V istinito može imati smisla samo za neke uzorke, ali ne i za slike. Nekretnina Rastezanje ne utiče na sličice kojima se ne može promijeniti veličina.

Nekretnina - Centar smjestiti se istinito, centrira sliku na područje Slika ako je veličina komponente veća od veličine slike.

Razmotrite drugu nekretninu - transparentan(transparentnost). Ako transparentan jednaki istinito, a zatim sliku unutra Slika postaje transparentan. Ovo se može koristiti za preklapanje slika jedna na drugu. Stavite drugu komponentu na formu Slika i postavite drugu sliku na njega. Samo pokušajte snimiti malo ispunjenu, konturnu sliku. Možete, na primjer, snimiti sliku između onih koje se obično postavljaju na dugmad, na primjer, strelicu (file.\program files\common files\borland shared\images\buttons\arrow1l.bmp). Pomeri svoje Slika tako da se međusobno preklapaju iu gornjem setu komponenti transparentan jednaka istinito. Vidjet ćete da gornja slika više ne zaklanja donju. Jedna od mogućih primjena ovog svojstva je nametanje natpisa na sliku, napravljenih u obliku bit matrice. Ovi natpisi se mogu napraviti koristeći ugrađeni Delphi Programi za slike urednik.

Imajte na umu da je nekretnina transparentan odnosi se samo na bitne matrice. Istovremeno, boja donjeg lijevog piksela bitmape je standardno providna (tj. zamijenjena bojom slike ispod nje).

Gledali smo učitavanje slike iz datoteke tokom procesa dizajna. Ali vlasništvo slika takođe vam omogućava da lako organizujete razmenu sa grafičkim datotekama bilo koje vrste tokom izvršavanja aplikacije. Da bismo objasnili tehniku ​​takve razmjene, prvo moramo detaljnije razmotriti svojstvo slika.

Ovo svojstvo je objekat, koji zauzvrat ima podsvojstva koja ukazuju na pohranjeni grafički objekat. Ako u slika bitna matrica je pohranjena, na nju ukazuje svojstvo slika. bitmap. Ako je ikona pohranjena, na nju ukazuje svojstvo slika. ikona. Svojstvo ukazuje na pohranjenu metadatoteku slika. Metafile. Konačno, svojstvo ukazuje na grafički objekat proizvoljnog tipa slika. Graphic.

Objekt slika i njegove osobine bitmap, ikona, Metafile I Graphic imaju metode čitanja i pisanja datoteka LoadFromFile I SaveToFile:

procedura LoadFromFile( konst ime dokumenta: string);

procedura SaveToFile( konst ime dokumenta: string);

Za nekretnine slika. bitmap, slika. ikona I slika. Metafile format datoteke mora odgovarati klasi objekta: bitmapa, ikona, metafile. Prilikom čitanja datoteke u svojstvo slika. Grafika datoteka mora biti u metafile formatu. I za sam objekat slika metode čitanja i pisanja se automatski prilagođavaju tipu datoteke. Objasnimo ovo na primjeru.

Napravimo aplikaciju sličnu primjeru pregleda grafičkih datoteka o kojem se govori u Odjeljku 4.2. Za promjenu, možete organizirati njegovu kontrolu ne pomoću gumba dugme, ali meni. Stavite komponentu na obrazac Slika. Rastegnite ga ili postavite njegovo svojstvo Poravnajte jednaka alClient tako da zauzima cijelo područje klijenta obrasca. Prevucite komponentu dijaloga za otvaranje grafičke datoteke na obrazac OpenPictureDialog(vidi odjeljak 8.2 ). Stavite i komponentu glavnog menija na obrazac glavni meni(vidi odjeljak 6.1 ) i postavite jedan odjeljak u njemu - File. U rukovaocu ovog odjeljka napišite izjavu

(OpenPictureDialog1.Execute) onda. slika. LoadFromFile(.FileName);

Ovaj operator će pozvati dijalog za otvaranje grafičkog fajla (vidi sliku 4.4) i učitati ga u komponentu Slika1 sliku iz datoteke koju je izabrao korisnik (vidi sliku 4.5). Štaviše, datoteka može biti bilo koje vrste: bitmapa, ikona ili metafajl.

Sl.4.5 Slika u komponenti Slika bit matrica (a) i piktogram (6)



U ovoj aplikaciji, metoda LoadFromFile primijenjen na Slika1. slika. Ako će se otvoriti samo bitmap datoteke, tada se naredba za učitavanje datoteke može zamijeniti sa

slika. bitmap. LoadFromFile(.FileName);

Za piktograme se može koristiti operator. slika. ikona. LoadFromFile(.FileName);

a za metadatoteke operator. slika. metafile. LoadFromFile(.FileName);

ili. slika. grafički. LoadFromFile(.FileName);

Ali u svim ovim slučajevima, ako format datoteke ne odgovara predviđenom, doći će do greške. Metoda radi na isti način. SaveToFile sa razlikom koja se odnosila na slika ili da slika. Graphic on sprema sliku bilo kojeg formata u datoteku. Na primjer, ako svojoj aplikaciji dodate dijalog SavePictureDialog(vidi odjeljak 8.2 ), unesite odjeljak Sačuvaj kao u izborniku i stavite operatora u njegov rukovalac

SavePictureDialog1. Izvrši onda. slika. SaveToFile(SavePictureDialog1.FileName);

tada će korisnik moći spremiti sliku bilo kojeg formata u datoteku s novim imenom. Samo u ovom slučaju, kako bi se izbjegla daljnja zabuna, ekstenzija spremljene datoteke mora i dalje odgovarati formatu spremljene slike.

Program će raditi apsolutno identično za slike bilo kojeg formata ako zamijenite operator spremanja sa

slika. grafički. SaveToFile(.FileName);

korištenje imovine slika. Graphic. I ako znate format pohranjen u komponenti Slika slike, onda možete primijeniti metodu SaveToFile na svojstva slika. bitmap, slika. ikona I slika. Metafile.

Za sve razmatrane objekte slika, slika. bitmap, slika. ikona I slika. Metafile definirane su metode za dodjelu vrijednosti objekta:

Dodijeli(Izvor: TPersistent);

Međutim, za bitmap, ikona I Metafile moguće je dodijeliti samo vrijednosti homogenih objekata: prema tome, bitne matrice, piktograme, metadatoteke. Izuzetak se stvara kada se pokušavaju dodijeliti vrijednosti heterogenim objektima EConvertError. Objekt slika- univerzalan, može mu se dodijeliti vrijednosti objekata bilo koje od ostale tri klase. I značenje slika može se dodijeliti samo objektu čiji tip odgovara tipu objekta pohranjenog u njemu.

Metoda Dodijeli može se koristiti i za dijeljenje slika s međuspremnikom međuspremnika. Na primjer, operater

Dodijeli(Slika1.Slika);

će postaviti u međuspremnik sliku u koju je pohranjena Slika1. Slično, operater

grafika delphi aplikacija za slike

Slika1. slika. Dodijeliti (međuspremnik);

pročitaće se Slika1 slika u klipbordu. Štaviše, to može biti bilo koja slika, pa čak i tekst.

Samo trebate zapamtiti da umetnete u operator kada radite sa međuspremnikom koristi vaš modul referenca na modul clipbrd. Delphi automatski ne ubacuje ovu vezu.

Vraćanje na svojstva komponente Slika, možemo primijetiti jedan nedostatak koji je svojstven našoj testnoj aplikaciji prikazanoj na slici 4.5. Prilikom učitavanja različitih slika, veličina prozora aplikacije može se pokazati ili premala, i tada ćete vidjeti samo dio slike, ili prevelik, i tada će slika biti ružno postavljena u gornji lijevi kut forme, ostavljajući puno praznog prostora. Ovaj nedostatak se može otkloniti korištenjem svojstava Visina(visina) i Širina(širina) komponenta Slika. Na imanju autosize osnovana u istinito dimenzije Slika automatski podešen na veličinu otpremljene slike. I ove dimenzije se mogu koristiti za promjenu veličine obrasca u skladu s tim. Na primjer, gornji kod za učitavanje slike iz datoteke mogao bi se zamijeniti sljedećim:

OpenPictureDialog1. Izvrši onda

početi. slika. LoadFromFile(.FileName);. Visina klijenta:= Slika1. Visina+10;. Vrh:=Form1. ClientRect. Top

+ (Form1.ClientHeight - Image1.Height) div 2;. Širina klijenta := Slika1. Širina+10;. Lijevo:=Form1. ClientRect. lijevo

+ (Form1.ClientWidth - Image1.Width) div 2;

kraj;

Ovaj kod postavlja veličinu klijentskog područja forme nešto veću od veličine komponente. Slika1, koji se zauzvrat prilagođavaju veličini slike zbog svojstva autosize. Primijenite ove popravke na svoju aplikaciju, pokrenite je i vidite da se obrazac automatski prilagođava veličini učitane slike

Komponenta oblika

Komponenta oblik može se samo uslovno pripisati sredstvu za prikazivanje grafičkih informacija, jer jednostavno predstavlja različite geometrijske oblike, odgovarajuće osenčene. Glavno svojstvo ove komponente je oblik(forma), koji može imati sljedeće vrijednosti:

Primjeri ovih oblika prikazani su na slici 4.7

Sl.4.7 Primjeri komponenti oblik


Još jedno bitno svojstvo komponente je Četka(četka). Ovo svojstvo je objekt tipa TBrush, koji ima niz podsvojstava, posebno: boju ( Četka. boja) i stil ( Četka. stil) da ispunite oblik. Popunite na nekim vrijednostima stil možete videti na slici 4.7 treće specifično svojstvo komponente oblik - olovka(olovka) koja definira stil linije. Ova nekretnina, kao i nekretnina Četka, već je diskutovano u odjeljku 4.2 . Referentni podaci o ovim svojstvima nalaze se u poglavlju 10*.

Chart Component

Sada razmotrite komponentu grafikon. Ova komponenta vam omogućava da napravite različite grafikone i grafikone koji izgledaju vrlo impresivno (slika 4.8). Komponenta grafikon ima mnogo svojstava, metoda, događaja, tako da ako uzmete u obzir sve njih, onda biste ovome morali posvetiti cijelo poglavlje. Stoga se ograničavamo na razmatranje samo glavnih karakteristika grafikon. A ostalo možete pronaći u ugrađenoj Delphi pomoći ili ih jednostavno isprobati eksperimentirajući sa dijagramima.

Komponenta grafikon je kontejner objekata Serije tip TChartSeries- serije podataka koje karakteriziraju različiti stilovi prikaza. Svaka komponenta može uključivati ​​nekoliko serija. Ako želite da prikažete grafikon, onda će svaka serija odgovarati jednoj krivoj na grafu. Ako želite da prikažete grafikone, za neke vrste grafikona možete preklopiti nekoliko različitih serija jedan na drugi, za druge (na primer, za tortne grafikone) će verovatno izgledati ružno. Međutim, u ovom slučaju možete postaviti za jednu komponentu grafikon više serija istih podataka sa različitim tipom grafikona. Zatim, aktiviranjem jednog od njih u svakom trenutku, možete dati korisniku izbor tipa grafikona koji prikazuje podatke koji ga zanimaju.

Postavite jednu ili dvije (ako želite reproducirati sliku 4.8) komponente grafikon na obrascu i pogledajte svojstva koja se otvaraju u Inspektoru objekata. Hajde da objasnimo neke od njih.

Određuje da li korisnik može da skroluje nadgledani deo grafa u toku rada klikom na desni taster miša. Moguće vrijednosti: pmNone - pomicanje je onemogućeno, pmHorizontalno, pmVertical ili pmBoth - respektivno, pomicanje je dozvoljeno samo u horizontalnom smjeru, samo u vertikalnom smjeru ili u oba smjera.

Omogućava korisniku da promeni razmeru slike tokom izvršavanja izrezivanjem fragmenata dijagrama ili grafikona kursorom miša (slika 4.8 b ispod prikazuje trenutak pregleda fragmenta grafa, koji je u celini predstavljen na slici 4.8 a).

Određuje naslov grafikona.

Određuje naslov za grafikon. Nema po defaultu. Tekst oznake je definiran podsvojstvom Text.

Definira granicu oko grafikona.

Legenda grafikona - lista simbola.

MarginLeft, MarginRight, MarginTop, MarginBottom

Vrijednosti lijeve, desne, gornje i donje margine.

Donja osa, lijeva osa, desna osa

Ova svojstva određuju karakteristike donje, lijeve i desne ose. Postavljanje ovih svojstava ima smisla za grafikone i neke vrste grafikona.

Lijevi zid, BottomWall, BackWall

Ova svojstva određuju karakteristike lijevog, donjeg i stražnjeg ruba trodimenzionalnog područja prikaza grafikona (vidi sliku 4.8 a, donji graf).

Lista serija podataka za prikaz u komponenti.

Omogućava ili onemogućuje prikaz 3D grafikona.

Karakteristike trodimenzionalnog prikaza.

Trodimenzionalna skala (za sliku 4.8, ovo je debljina grafikona i širina trake grafikona).


Pored mnogih navedenih svojstava u Object Inspectoru nalaze se dugmad sa trotočjem koji vam omogućavaju da pozovete jednu ili drugu stranicu uređivača grafikona - prozor sa više stranica koji vam omogućava da postavite sva svojstva grafikona. Pozivanje uređivača dijagrama također je moguće dvostrukim klikom na komponentu grafikon ili desnim klikom na nju i odabirom naredbe Uredi grafikon iz iskačućeg izbornika.

Ako želite da pokušate reproducirati aplikaciju prikazanu na slici 4.8, dvaput kliknite na gornju komponentu grafikon. Bićete odvedeni u prozor Chart Editor (Sl.4.9) na stranicu Chart, koja ima nekoliko kartica. Prije svega, zanimat će vas kartica Series na njoj. Kliknite na dugme Dodaj - dodajte seriju. Bićete odvedeni u prozor (slika 4.10) gde možete da izaberete tip grafikona ili grafikona. U tom slučaju odaberite Pie - tortni grafikon. Koristeći karticu Naslovi, možete postaviti naslov dijagrama, kartica Legend vam omogućava da postavite opcije prikaza legende dijagrama (lista simbola) ili da je potpuno uklonite sa ekrana, kartica Panel određuje izgled panela na kojoj je dijagram prikazan, 3D kartica vam omogućava da promijenite izgled vašeg dijagrama: nagib, smicanje, debljinu itd.

Kada radite sa uređivačem grafikona i odaberete tip grafikona, komponente grafikon vaš obrazac prikazuje svoj izgled sa unesenim uslovnim podacima (vidi sliku 4.11).

Sl.4.10 Odabir tipa grafikona u uređivaču grafikona


Stoga možete odmah vidjeti rezultat primjene različitih opcija na vašu aplikaciju, što je vrlo zgodno.

Stranica Serija, koja također ima brojne kartice, omogućava vam da odaberete dodatne karakteristike prikaza za seriju. Konkretno, za tortni grafikon na kartici Format, korisno je omogućiti opciju Circled Pie, koja će omogućiti bilo koju veličinu komponente grafikon prikazujući grafikon kao krug. Na kartici Oznake, dugmad grupe Stil određuju šta će biti napisano na oznakama koje se odnose na pojedinačne segmente grafikona: Vrednost - vrednost, Procenat - procenti, Oznaka - nazivi podataka itd. U primeru na slici 4.8, dugme Procenat je omogućeno, a šablon procenta je postavljen na kartici General, što obezbeđuje da se prikazuju samo celobrojne vrednosti.

Možete, ako želite, dodati ovu komponentu grafikon drugu identičnu seriju tako što ćete kliknuti na dugme Klon na kartici Serija na stranici sa grafikonom, a zatim za ovu novu seriju kliknite na dugme Promeni i izaberite drugu vrstu grafikona, na primer, traka. Naravno, dva različita tipa grafikona na istoj slici će izgledati loše. Ali možete isključiti indikator ove nove serije na kartici Series, a zatim pustiti korisniku da odabere jednu ili drugu vrstu prikaza grafikona (pokazaćemo kako to učiniti u nastavku).

Izađite iz uređivača dijagrama, odaberite donju komponentu u vašoj aplikaciji grafikon i ponovite postavljanje svojstava za njega pomoću uređivača dijagrama. U ovom slučaju, moraćete da navedete dve serije ako želite da prikažete dve krive na grafikonu i da izaberete tip linijskog grafikona. Pošto je riječ o grafovima, možete koristiti kartice Os i Zidovi za postavljanje koordinatnih karakteristika osa i trodimenzionalnih lica grafa.

Na ovom dizajnu izgled aplikacija se završava. Ostaje da napišete kod koji specificira podatke koje želite prikazati. Za testnu aplikaciju, postavimo neke konstantne podatke u tortni grafikon, a sinusne i kosinusne funkcije u grafove.

Za postavljanje prikazanih vrijednosti koristite metode serije Serije. Hajde da se fokusiramo na tri glavne metode.

Metoda Jasno briše seriju od prethodno unesenih podataka.

Metoda Dodati:

(Const AValue: Double; Const Alabel: String;: TColor)

omogućava vam da dodate novu tačku na grafikon. Parametar AValue odgovara dodanoj vrijednosti, parametru ALabel- naziv koji će biti prikazan na grafikonu i u legendi, AColor- boja. Parametar ALabel- opciono, može se postaviti prazno: "".

Metoda AddXY:(Const AXValue, AYValue: Double; Alabel: String; AColor: TColor)

omogućava vam da dodate novu tačku na graf funkcije. Opcije AXValue I AYValue podudaraju argument i funkciju. Opcije ALabel I AColor isto kao u metodi Dodati.

Dakle, procedura za učitavanje podataka u našem primjeru može izgledati ovako:

155;=251;=203;=404;

var:word;

početi Series1 uradi

početi;(A1, "Floor 1", clYellow);(A2, "Floor 2", clPlave);(A3, "Floor 3", clRed);(A4, "Floor 4", clPlue);

kraj;. jasno. jasno;

za i:=0 to 100 uradi

početi. AddXY(0,02*Pi*i, sin(0,02*Pi*i), "", clRed);. AddXY (0,02*Pi*i, cos (0,02*Pi*i), "", clBlue);

Ako ste naveli, na primjer, za podatke prikazane na grafikonu, dvije serije Series1 I Serija4 različite vrste - Pita I bar, tada možete unijeti proceduru koja mijenja tip dijagrama na zahtjev korisnika. Ovaj postupak se može unijeti u događaj onclick neko dugme, u komandi menija ili, na primer, jednostavno u obradi klika na komponentu grafikon. Da biste učitali podatke na Serija4 a da ovaj dijagram bude nevidljiv u prvom trenutku, na kraju gornje procedure možemo umetnuti iskaze

Dodijeli (Serija1);. aktivno:=false;

Prvi od ovih operatora zamenjuje podatke umetnute Series1, u seriji Serija4. A drugi operator čini seriju nevidljivom Serija4. Promjena vrste dijagrama se vrši postupkom

aktivno:= ne Series1. Aktivan;. aktivno:= ne Serija4. aktivan;

Na slici 4.8 b možete vidjeti rezultat prebacivanja korisnika na drugu vrstu dijagrama.

Za prikaz grafičkih informacija u Delphi biblioteci, obezbeđene su komponente, čija je lista data u tabeli. 6.

Tabela 6

Komponente za prikaz grafičkih informacija

Komponenta Stranica Opis
slika (slika) Dodatno Koristi se za prikaz grafike
PaintBox (prozor za crtanje) Sistem Koristi se za kreiranje oblasti na formi u kojoj možete crtati
DrawGrid (tabela za crtanje) Dodatno Koristi se za prikaz netekstualnih podataka u redovima i kolonama
grafikon (grafikoni i grafikoni) Dodatno Komponenta pripada TeeChart porodici komponenti koje se koriste za kreiranje grafikona i grafikona
Chartfx (grafikoni i grafikoni) ActiveX Editor grafikona i grafikona
FIBook (Excel stranice) ActiveX Komponenta za unos i obradu numeričkih informacija
VtChart (Grafikoni) ActiveX Prozor dijagrama

Osim toga, možete prikazati i unijeti grafičke informacije na površini bilo koje komponente prozora koja ima svojstvo Platno- platno.

Tabele slika - komponente DrawGrid i StringGrid

Komponenta DrawGrid koristi se za kreiranje tabele u aplikaciji koja može sadržati grafiku. Ova komponenta je slična komponenti Mreža nizova, budući da je ovo drugo izvedeno iz drawgrid. Stoga, u DrawGrid sva svojstva, metode, događaji komponente su prisutne Mreža nizova, osim onih koji se odnose na tekst, tj. osim nekretnina Ćelije, Kolovi, redovi, objekti. Sa ove tačke gledišta, komponenta StringGrid ima mnogo više potencijala od vučna mreža, jer može pohraniti i slike i tekst u ćelije. I ako želite da unesete tekst u neke ćelije vučna mreža, tada ćete za to morati koristiti metode za izlaz teksta na platno, što nije baš zgodno.

Komponente DrawGrid i StringGrid imati platno platno, gde se slike mogu postaviti.

Postoji metoda rektum ćelije, koji vraća površinu platna dodijeljenu za datu ćeliju. Ova metoda je definisana kao

funkcija CellRect(ACol, ARow: Longint): TRect;

Gdje ACol i ARow- indeksi stupaca i reda, počevši od 0, na čijem se presjeku ćelija nalazi. Područje koje vraća ova funkcija je područje platna u kojem se može nacrtati željena slika. Na primjer, operater

DrawGridl.Canvas.CopyRect(DrawGridl.CellRect(1,1),

BitMap.Canvas,Rect(0,0,BitMap.Height,BitMap.Width));

kopije po metodi CopyRect u ćeliju (1,1) tabele DrawGridl slika sa komponente bitmap. Ova ćelija je druga s lijeve strane i druga s vrha u tabeli jer indeksi počinju od 0. Imajte na umu da ako su dimenzije ćelije manje od veličine kopirane slike, tada će samo gornji lijevi dio slike pojavljuju u ćeliji.

Slika komponentnog platna DrawGrid i StringGrid kao na platnu bilo koje komponente, podložan je brisanju kada se prozor aplikacije preklapa sa drugim prozorima ili, na primjer, kada je aplikacija minimizirana.

Pogodan način za unos slika u ćelije DrawGrid je korištenje obrađivača događaja OnDrawCell. Ovi događaji se javljaju za svaku ćeliju tabele u trenutku njenog ponovnog crtanja. Zaglavlje rukovaoca izgleda ovako:

procedura TForml.DrawGridlDrawCell(Pošiljalac: TObject;

ACol, ARow: Integer; Rect: TRect; Stanje: TGridDrawState)

Parametar Država označava stanje ćelije. To je set koji može sadržavati sljedeće elemente: gdSelected- označena ćelija gdFocused- ćelija koja je u fokusu, gdFixed- ćelija u fiksnoj oblasti stola. Parametar Država može se koristiti za različit prikaz ćelija u različitim stanjima.

Komponenta oblika

Komponenta oblika može se samo uslovno pripisati sredstvu za prikazivanje grafičkih informacija, jer jednostavno predstavlja različite geometrijske oblike, odgovarajuće osenčene. Glavno svojstvo ove komponente je oblik(forma), koji može imati sljedeće vrijednosti:

StRectangle - pravougaonik;

StSquare - kvadrat;

StRoundRect - pravougaonik sa zaobljenim uglovima;

StRouhdSquare - kvadrat sa zaobljenim uglovima;

StEllipse - elipsa;

StCircle - krug.

Još jedno bitno svojstvo komponente je Četka(četka). Ovo svojstvo je objekt tipa četkica, ima niz pod-osobina, posebno boju (četka.Boja) i stil (Stil četke) popunjavanje oblika. Možete vidjeti ispunu kod nekih vrijednosti stila na Sl. 3.2. Treće od specifičnih svojstava komponente oblik- olovka(olovka) koja definira stil linije.

Chart Component

Sada razmotrite komponentu Grafikon. Ova komponenta vam omogućava da napravite različite grafikone i grafikone koji izgledaju vrlo impresivno. Komponenta grafikon ima mnogo svojstava, metoda, događaja, tako da ako uzmete u obzir sve njih, onda biste ovome morali posvetiti cijelo poglavlje. Stoga se ograničavamo na razmatranje samo glavnih karakteristika Grafikon. A ostalo možete pronaći u ugrađenoj Delphi pomoći ili ih jednostavno isprobati eksperimentirajući sa dijagramima.

Komponenta grafikon je kontejner objekata Serije- klasni potomci TchartSeries. Svaki takav objekt predstavlja niz podataka karakteriziranih određenim stilom prikaza: jedan ili drugi grafikon ili grafikon. Svaka komponenta grafikon može uključivati ​​nekoliko serija. Ako želite da prikažete grafikon, onda će svaka serija odgovarati jednoj krivoj na grafu. Ako želite da prikažete grafikone, za neke vrste grafikona možete preklopiti nekoliko različitih serija jedan na drugi, za druge (na primer, za tortne grafikone) će verovatno izgledati ružno. Međutim, u ovom slučaju možete postaviti za jednu komponentu grafikon više serija istih podataka sa različitim tipom grafikona. Zatim, aktiviranjem jednog od njih u svakom trenutku, možete dati korisniku izbor tipa grafikona koji prikazuje podatke koji ga zanimaju.

Stavite jednu ili dvije komponente grafikon na obrascu i pogledajte svojstva koja se otvaraju u Inspektoru objekata. Hajde da objasnimo neke od njih.

AllowPanning - određuje mogućnost korisnika da skroluje posmatrani deo grafikona tokom izvršavanja pritiskom na desni taster miša. Moguće vrijednosti: pmNone - pomicanje je onemogućeno, pmHori/ontal, pm Vertical ili pmBoth - respektivno, pomicanje je dozvoljeno samo u horizontalnom smjeru, samo u vertikalnom smjeru ili u oba smjera.

AhowZoom - omogućava korisniku da promijeni zumiranje slike u toku rada izrezivanjem fragmenata grafikona ili grafikona kursorom miša. Ako se okvir fragmenta povuče udesno i dolje, tada se ovaj fragment proteže na cijelo polje grafikona. A ako je okvir nacrtan prema gore i lijevo, tada se vraća izvorna skala.

Naslov - definiše naslov grafikona.

Stopa - definiše natpis ispod grafikona. Nema po defaultu. Tekst oznake je definiran podsvojstvom Text.

Okvir - definira okvir oko grafikona.

Pored mnogih navedenih svojstava u Object Inspectoru nalaze se dugmad sa trotočjem koji vam omogućavaju da pozovete jednu ili drugu stranicu uređivača grafikona - prozor sa više stranica koji vam omogućava da postavite sva svojstva grafikona. Pozivanje uređivača dijagrama također je moguće dvostrukim klikom na komponentu grafikon ili desnim klikom na nju i odabirom naredbe Uredi grafikon iz iskačućeg izbornika.

Dvaput kliknite na gornju komponentu Grafikon. Bićete odvedeni u prozor uređivača grafikona na stranicu sa grafikonom, koja ima nekoliko kartica. Prije svega, zanimat će vas kartica Series na njoj. Kliknite na dugme Dodaj - dodajte seriju. Bićete odvedeni u prozor u kojem možete odabrati vrstu grafikona ili grafikona. U tom slučaju odaberite Pie - tortni grafikon. Koristeći karticu Naslovi, možete postaviti naslov dijagrama, kartica Legend vam omogućava da postavite opcije prikaza legende dijagrama (lista simbola) ili da je potpuno uklonite sa ekrana, kartica Panel određuje izgled panela na kojoj je dijagram prikazan, 3D kartica vam omogućava da promijenite izgled vašeg dijagrama: nagib, smicanje, debljinu itd.

Kada radite sa uređivačem grafikona i odaberete tip grafikona, komponente grafikon vaš obrazac prikazuje svoj izgled sa unesenim uslovnim podacima. Stoga možete odmah vidjeti rezultat primjene različitih opcija na vašu aplikaciju, što je vrlo zgodno.

Stranica Serija, koja također ima brojne kartice, omogućava vam da odaberete dodatne karakteristike prikaza za seriju. Konkretno, za tortni grafikon na kartici Format, korisno je omogućiti opciju Circled Pie, koja će osigurati da se grafikon prikaže kao krug u bilo kojoj veličini komponente grafikona. Na kartici Oznake, dugmad grupe Stil određuju šta će biti napisano na oznakama koje se odnose na pojedinačne segmente grafikona: Vrednost - vrednost, Procenat - procenti, Oznaka - nazivi podataka itd.

Možete, ako želite, dodati još jednu identičnu seriju ovoj komponenti grafikona tako što ćete kliknuti na dugme Klon na kartici Serije na stranici sa grafikonom, a zatim za ovu novu seriju kliknite na dugme Promeni i izaberite drugu vrstu grafikona, kao što je traka .

Izađite iz uređivača grafikona, odaberite donju komponentu grafikona u vašoj aplikaciji i ponovite postavljanje svojstava za nju pomoću uređivača grafikona. U ovom slučaju, moraćete da navedete dve serije ako želite da prikažete dve krive na grafikonu i da izaberete tip linijskog grafikona. Pošto je riječ o grafovima, možete koristiti kartice Os i Zidovi za postavljanje koordinatnih karakteristika osa i trodimenzionalnih lica grafa.

Ovim se završava dizajn izgleda aplikacije. Ostaje da napišete kod koji specificira podatke koje želite prikazati. Za testnu aplikaciju, samo definirajmo neke konstantne podatke u tortnom grafikonu i neke funkcije u grafikonima.

Za postavljanje prikazanih vrijednosti koristite metode serije. Hajde da se fokusiramo na tri glavne metode.

Metoda Jasno briše seriju od prethodno unesenih podataka.

Metoda Dodati:

Dodaj(Const AValue:Double; Const ALabel:String; AColor:TColor) ,

omogućava vam da dodate novu tačku na grafikon. Parametar AValue odgovara dodanoj vrijednosti, parametru ALabel- oznaka koja će biti prikazana na grafikonu i u legendi, AColor- boja. Parametar ALabel- opciono, može se postaviti prazno: ‘ . Metoda AddXY:

AddXY(Const AXValue, AYValue: Double; Const Alabel: String; AColor: TColor)

omogućava vam da dodate novu tačku na graf funkcije. Opcije AXValue I AYValue podudaraju argument i funkciju. Opcije ALabel i AColor isto kao u metodi Dodati.

Dakle, procedura za učitavanje podataka u našem primjeru može izgledati ovako:

constAl=155; A2=251; A3=203; A4=404; var i:word; početi

Sa Serieslom počnite

Dodaj(Al,"Prodavnica l",clŽuta);

Dodaj(A2,"Dizajn 2",clPlavo);

Dodaj(A3,"Floor 3",clRed);

Dodaj(A4,"Dizajn 4",clljubičasta); kraj;

Series2.Clear; SeriesS.Clear; za i:=0 do 100 počinje

Series2.AddXY(0,02*Pi*i,sin(0,02*Pi*i)

SeriesS.AddXY(0,02*Pi*i,cos(0,02*Pi*i) kraj;

ClRed); ,clBlue);

Operateri Jasno su potrebni ako ćete ažurirati podatke tokom rada aplikacije.

Ovo završava naše upoznavanje sa komponentom. Grafikon. Istina, uzeli smo u obzir samo mali dio njegovih mogućnosti.

mob_info