Komponentit graafisten tietojen näyttämiseen. Esitys aiheesta "Graafisen tiedon näyttäminen Delphissä." Lyhyt tieto teoriasta

Graafisten tietojen näyttämiseksi Delphi-kirjasto tarjoaa komponentteja, joiden luettelo on taulukossa. 6.

Taulukko 6

Komponentit graafisten tietojen näyttämiseen

Komponentti Sivu Kuvaus
Kuva Lisätiedot Käytetään grafiikan näyttämiseen
PaintBox (ikkuna piirtämiseen) Järjestelmä Käytetään luomaan lomakkeelle alue, johon voit piirtää
DrawGrid (piirustustaulukko) Lisätiedot Käytetään ei-tekstitietojen näyttämiseen riveissä ja sarakkeissa
Kaavio (kaaviot ja kaaviot) Lisätiedot Komponentti kuuluu TeeChart-komponenttiperheeseen, jota käytetään kaavioiden ja kaavioiden luomiseen
Chartfx (kaaviot ja kaaviot) ActiveX Kaavio- ja kaavioeditori
FIBook (Excel-sivut) ActiveX Numeerisen tiedon syöttö- ja käsittelykomponentti
VtChart (kaaviot) ActiveX Kaavioikkuna

Lisäksi voit näyttää ja syöttää graafisia tietoja minkä tahansa ominaisuuden omaavan ikkunakomponentin pinnalle Kangas- kangas.

Kuvataulukot - DrawGrid- ja StringGrid-komponentit

Komponentti DrawGrid käytetään luomaan taulukko sovelluksessa, joka voi sisältää graafisia kuvia. Tämä komponentti on samanlainen kuin komponentti StringGrid koska jälkimmäinen on johdettu DrawGrid. Siksi sisään DrawGrid kaikki komponentin ominaisuudet, menetelmät ja tapahtumat ovat läsnä StringGrid paitsi tekstiin liittyvät, ts. paitsi ominaisuuksia Solut, Sarakkeet, rivit, objektit. Tästä näkökulmasta komponentti StringGrid on huomattavasti paremmat ominaisuudet kuin DrawGrid koska se voi tallentaa sekä kuvia että tekstejä soluihin. Ja jos haluat kirjoittaa tekstiä joihinkin soluihin DrawGrid sitten sinun on käytettävä menetelmiä tekstin näyttämiseksi ääriviivalla tätä varten, mikä ei ole kovin kätevää.

Komponentit DrawGrid ja StringGrid on ääriviivat Kangas, johon voit lähettää kuvia.

On olemassa menetelmä Cell-Rect, joka palauttaa tietylle solulle varatun kanvasalueen. Tämä menetelmä määritellään seuraavasti

toiminto CellRect(ACol, Arow: Longint): TRect;

Missä Acol ja Arow- sarake- ja riviindeksit alkaen 0, jonka leikkauskohdassa solu sijaitsee. Tämän toiminnon palauttama alue on kangasalue, jolle haluttu kuva voidaan piirtää. Esimerkiksi operaattori

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

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

kopiointimenetelmä CopyRect taulukon soluun (1,1). DrawGridl kuva komponentista BitMap. Tämä solu on taulukossa toinen vasemmalta ja toinen ylhäältä, koska indeksit alkavat nollasta. Huomaa, että jos solu on pienempi kuin kopioitavan kuvan koko, vain kuvan vasen yläosa näkyy taulukossa. solu.

Kuva komponenttikankaalla DrawGrid ja StringGrid, Kuten minkä tahansa komponentin kankaalla, se voidaan poistaa, kun sovellusikkuna on päällekkäin muiden ikkunoiden kanssa tai esimerkiksi kun sovellus pienennetään.

Kätevä tapa syöttää kuvia soluihin DrawGrid on käyttää tapahtumakäsittelijää OnDrawCell. Nämä tapahtumat tapahtuvat jokaiselle taulukon solulle, kun se piirretään uudelleen. Käsittelijän otsikko näyttää tältä:

menettely TForml.DrawGridlDrawCell(Lähettäjä: TObject;

Acol, Arow: Kokonaisluku; Suora: TRect; Tila: TGridDrawState)

Parametri Osavaltio ilmaisee solun tilan. Se on joukko, joka voi sisältää seuraavat elementit: gdValittu- valittu solu, gdFocused- solu, joka on tarkentunut, gdFixed- solu taulukon kiinteällä alueella. Parametri Osavaltio voidaan käyttää näyttämään solut eri tavalla eri tilassa.

Muotokomponentti

Muotokomponentti voidaan vain ehdollisesti luokitella graafisen tiedon esittämiskeinoksi, koska se yksinkertaisesti edustaa erilaisia ​​geometrisia muotoja asianmukaisesti varjostettuina. Tämän komponentin tärkein ominaisuus on Muoto(lomake), jolla voi olla seuraavat arvot:

StRectangle – suorakulmio;

StSquare – neliö;

StRoundRect - suorakulmio pyöristetyillä kulmilla;

StRouhdSquare - neliö pyöristetyillä kulmilla;

StEllipse – ellipsi;

StCircle - ympyrä.

Toinen komponentin olennainen ominaisuus on Harjata(harjata). Tämä ominaisuus on tyyppinen objekti TBrush, jolla on useita aliominaisuuksia, erityisesti väri (Sivellin. Väri) ja tyyliin (Brush.Style) täyttää hahmon. Voit nähdä joidenkin tyyliarvojen täytön kuvassa. 3.2. Komponentin kolmas erityinen ominaisuus Muoto- Kynä(kynä), joka määrittää viivatyylin.

Kaavion osa

Katsotaan nyt komponenttia Kartoittaa. Tämän komponentin avulla voit rakentaa erilaisia ​​kaavioita ja kaavioita, jotka näyttävät erittäin vaikuttavilta. Komponentti Kartoittaa sillä on monia ominaisuuksia, menetelmiä, tapahtumia, joten jos tarkastelemme niitä kaikkia, joutuisimme omistamaan tälle kokonaisen luvun. Siksi rajoitamme huomiomme vain tärkeimmät ominaisuudet Kartoittaa. Loput löydät Delphin sisäänrakennetusta ohjeesta tai voit vain kokeilla niitä kokeilemalla kaavioita.

Komponentti Kartoittaa on esineiden säiliö Sarja- luokan perilliset TChartSeries. Jokainen tällainen objekti edustaa sarjaa dataa, jolle on ominaista tietty näyttötyyli: tietty kaavio tai kaavio. Jokainen komponentti Kartoittaa voi sisältää useita jaksoja. Jos haluat näyttää kaavion, jokainen sarja vastaa yhtä käyrää kaaviossa. Jos haluat näyttää kaavioita, joidenkin kaaviotyyppien kohdalla voit asettaa päällekkäin useita eri sarjoja, toisille (kuten ympyräkaavioille) se näyttää todennäköisesti rumalta. Voit kuitenkin myös tässä tapauksessa asettaa yhden komponentin Kartoittaa useita sarjoja samaa dataa eri kaaviotyypeillä. Aktivoimalla yksi niistä joka kerta, voit tarjota käyttäjälle valinnanvaraa, minkä tyyppistä kaaviota näyttää häntä kiinnostavat tiedot.

Aseta yksi tai kaksi komponenttia Kartoittaa lomakkeella ja katso Object Inspectorissa avautuvia ominaisuuksia. Tässä on joitain selityksiä joistakin niistä.

AllowPanning - määrittää käyttäjän kyvyn vierittää kaavion havaittua osaa suorituksen aikana painamalla hiiren oikeaa painiketta. Mahdolliset arvot: pmNone - vieritys kielletty, pmHori/ontal, pm Pysty tai pmMolemmat - vieritys on sallittu, vastaavasti, vain vaakasuunnassa, vain pystysuunnassa tai molempiin suuntiin.

AhowZoom - sallii käyttäjän muuttaa kuvan zoomausta ajon aikana leikkaamalla osia kaaviosta tai kaaviosta hiiren kursorilla. Jos fragmentin kehys piirretään oikealle ja alaspäin, tämä fragmentti venytetään kattamaan koko kaavion kentän. Ja jos kehys piirretään vasemmalle, alkuperäinen asteikko palautetaan.

Otsikko - määrittää kaavion otsikon.

Jalka - määrittää kaavion alla olevan kuvatekstin. Ei mitään oletuksena. Allekirjoitusteksti määräytyy Teksti-aliominaisuuden perusteella.

Kehys - määrittää kaavion ympärillä olevan kehyksen.

Monien Object Inspectorissa lueteltujen ominaisuuksien vieressä on ellipseillä varustettuja painikkeita, joiden avulla voit kutsua kaavioeditorin yhden tai toisen sivun - monisivuisen ikkunan, jonka avulla voit määrittää kaikki kaavioiden ominaisuudet. Kaavioeditori voidaan kutsua myös kaksoisnapsauttamalla komponenttia Kartoittaa tai napsauta sitä hiiren kakkospainikkeella ja valitse Muokkaa kaaviota -komento ponnahdusvalikosta.

Kaksoisnapsauta ylintä komponenttia Kartoittaa. Sinut ohjataan Kaavio-sivun Kaavioeditori-ikkunaan, jossa on useita välilehtiä. Ensinnäkin olet kiinnostunut sen Sarja-välilehdestä. Napsauta Lisää-painiketta - lisää sarja. Sinut ohjataan ikkunaan, jossa voit valita kaavion tai kaavion tyypin. Valitse tässä tapauksessa ympyräkaavio. Otsikot-välilehdellä voit asettaa kaavion otsikon, Selite-välilehdellä voit asettaa parametreja kaavion selitteen (symbolien luettelon) näyttämiseksi tai poistaa sen näytöltä kokonaan, Paneeli-välilehti määrittää paneelin ulkoasun jossa kaavio näytetään, 3D-välilehti antaa sinulle mahdollisuuden muuttaa kaavion ulkoasua: kallistus, siirto, paksuus jne.

Kun työskentelet kaavioeditorissa ja olet valinnut kaaviotyypin, komponentit Kartoittaa Lomakkeesi näyttää ulkoasunsa ja siihen syötetyt ehdolliset tiedot. Siksi voit heti nähdä tuloksen, kun käytät erilaisia ​​​​vaihtoehtoja sovellukseesi, mikä on erittäin kätevää.

Sarja-sivulla, jolla on myös useita välilehtiä, voit valita sarjalle lisää näyttövaihtoehtoja. Erityisesti ympyräkaavion osalta Muoto-välilehdellä on hyödyllistä ottaa käyttöön Ympyröity ympyrä -vaihtoehto, joka varmistaa, että kaavio näytetään ympyränä missä tahansa Kaavio-komponentin koossa. Merkit-välilehdellä Tyyli-ryhmän painikkeet määrittävät, mitä kaavion yksittäisiin segmentteihin liittyviin tarroihin kirjoitetaan: Arvo - arvo, Prosentti - prosenttiosuudet, Tunniste - tietojen nimet jne.

Voit halutessasi lisätä toisen identtisen sarjan tähän kaaviokomponenttiin napsauttamalla Kloonaa-painiketta Kaavio-sivun Sarja-välilehdellä ja sitten tätä varten. uusi sarja Napsauta Muuta-painiketta ja valitse eri kaaviotyyppi, esimerkiksi palkki.

Poistu kaavioeditorista, valitse sovelluksesi alin kaaviokomponentti ja toista sen ominaisuuksien määrittäminen kaavioeditorilla. Tässä tapauksessa sinun on määritettävä kaksi sarjaa, jos haluat näyttää kaksi käyrää kaaviossa, ja valittava Viivakaaviotyyppi. Koska me puhumme Mitä tulee kuvaajiin, voit käyttää Akseli- ja Seinät-välilehtiä määrittääksesi kaavion akseleiden ja kolmiulotteisten reunojen koordinaattiominaisuudet.

Siinä se suunnitteluun ulkomuoto hakemus päättyy. Jäljelle jää vain koodin kirjoittaminen, joka määrittää näytettävät tiedot. Testisovellukselle asetetaan vain joitain vakiotietoja ympyräkaavioon ja joitain funktioita kaavioihin.

Näytettävien arvojen asettamiseksi sinun on käytettävä sarjamenetelmiä. Keskitytään vain kolmeen päämenetelmään.

Menetelmä Asia selvä tyhjentää sarjan aiemmin syötettyjä tietoja.

Menetelmä Lisätä:

Lisää(Vakioarvo:Kaksois; Vakio ALabel:Merkkijono; AVäri:Tväri) ,

voit lisätä uuden pisteen kaavioon. Parametri Arvo vastaa lisäarvoa, parametria ALabel- tarra, joka näytetään kaaviossa ja selityksessä, AColor- väri. Parametri ALabel- valinnainen, se voidaan asettaa tyhjäksi: "". Menetelmä AddXY:

AddXY(Vakio AXArvo, AYArvo: Double; Const ALabel: String; AColor: TColor)

voit lisätä uuden pisteen funktiokaavioon. Vaihtoehdot AXValue Ja AYValue vastaavat argumenttia ja funktiota. Vaihtoehdot ALabel ja AColor sama kuin menetelmässä Lisätä.

Näin ollen menetelmä tietojen lataamiseksi esimerkissämme voisi näyttää tältä:

const Al = 155; A2 = 251; A3 = 203; A4 = 404; var i:word; alkaa

Sarjalla aloita

Add(Al,"työpaja l",clKeltainen);

Add(A2,"työpaja 2",clBlue);

Add(A3,"työpaja 3",clRed);

Add(A4,"työpaja 4",clPurple); loppu;

Series2.Clear; SeriesS.Clear; i:=0 - 100 aloita

Sarja2.AddXY(0.02*Pi*i,sin(0.02*Pi*i)

SarjaS.AddXY(0.02*Pi*i,cos(0.02*Pi*i) loppu;

ClRed); ,clBlue);

Operaattorit Asia selvä tarvitaan, jos aiot päivittää tietoja sovelluksen ollessa käynnissä.

Tämä päättää esittelymme komponenttiin Kartoittaa. Totta, olemme ottaneet huomioon vain pienen osan sen kyvyistä.

Työskentely grafiikan kanssa Delphissä se ei ole vain viivoja ja piirustuksia, vaan myös tulostamista tekstiasiakirjoja. Siksi sisään Delphi töissä grafiikan kanssa sinun täytyy viettää vähän aikaa. Työskennellä grafiikkaa Delphissä sisältää pääsyn kankaalle - komponenttien Canvas-ominaisuuteen. Canvas Delphi tämä on kangas, jonka avulla ohjelmoija voi päästä käsiksi sen jokaiseen pisteeseen (pikseliin) ja näyttää taiteilijan tavoin tarvitsemansa. Tietenkin piirrä pikseli pikseli kerrallaan grafiikan parissa työskenteleminen Delphissä ei ole välttämätöntä, Delphi-järjestelmä tarjoaa tehokkaan grafiikkatyökalut, mikä helpottaa ohjelmoijan työtä.

Kun työskentelet grafiikan kanssa Delphissä, ohjelmoijalla on käytettävissään ääriviiva (kanvas, kangas - omaisuus Kangas Delphi komponentit), kynä (omaisuus Kynä), sen komponentin tai esineen siveltimellä (Brush-ominaisuus), jolle sinun on tarkoitus maalata. Kynällä Kynä ja harjat Harjata voit muuttaa väriä (Color-ominaisuus) ja tyyliä (Style-ominaisuus). Kanvas-ominaisuus tarjoaa pääsyn kirjasimiin Fontti. Näiden työkalujen avulla voit näyttää sekä tekstiä että melko monimutkaisia ​​matemaattisen ja teknisen sisällön kaavioita sekä piirustuksia. Sitä paitsi, grafiikan parissa työskenteleminen antaa sinun käyttää tällaisia ​​resursseja Delphissä Windows kuten grafiikka ja videotiedostot.

Kaikilla Delphin komponenteilla ei tietenkään ole näitä ominaisuuksia. Välilehdellä Lisätiedot erikoiskomponentti sijaitsee TIimage, suunniteltu erityisesti piirtämiseen, mutta myös omaisuutta Kangas sisältää esimerkiksi komponentteja, kuten ListBox, ComboBox, StringGrid, sekä itse Form, joka sijoittaa komponentimme! Lisäksi Delphi käyttää asiakirjoja tulostaakseen kohteen, kuten tulostimen, Canvas-ominaisuutta.

Sellaisen kohteen kuin Canvas Delphi tärkein ominaisuus on Pikselit tyyppi TColor, eli se on kaksiulotteinen joukko pisteitä (pikseleitä), jotka on määritetty niiden värillä. Piirustus kankaalle tapahtuu sillä hetkellä, kun tietty väri määritetään mihin tahansa kankaan kohtaan. Jokaiselle pikselille voidaan määrittää mikä tahansa Windowsille saatavilla oleva väri. Esimerkiksi lauseen suorittaminen

Image1.Canvas.Pixels:=clRed;

Tuloksena piirretään punainen piste koordinaatteineen. Voit selvittää pikselin värin käänteisellä määrityksellä:

Väri:=Kuva1.Canvas.Pixels;

Tyyppi TColor määritelty pitkäksi kokonaisluvuksi (LongInt). Sen neljä tavua sisältävät tietoa sinisen (B), vihreän (G) ja punaisen (R) värien suhteista. Heksadesimaalijärjestelmässä se näyttää tältä: $00BBGGRR. Kunkin värin osuus voi vaihdella välillä 0 - 255. Siksi punaisen maksimipisteen näyttämiseksi se on määritettävä väri $000000FF.
Delphin vakioväreille määritellään joukko tekstivakioita. Näet sen avaamalla esimerkiksi saman lomakkeen Väri-ominaisuuden Objektiasetuksissa.

Seuraava taulukko sisältää joitain kankaan ominaisuuksia ja menetelmiä:

Toimenpide TextOut(X, Y: Kokonaisluku; konst Teksti: WideString);
Tuottaa merkkijonotulosteen Teksti alkaen (X, Y) - tekstin vasemmasta yläkulmasta.
Ominaisuus TextWidth( var Teksti: Merkkijono): Kokonaisluku;
Sisältää langan pituuden Teksti pikseleinä.
Ominaisuuden tekstin korkeus( var Teksti: Merkkijono): Kokonaisluku;
Sisältää rivin korkeuden Teksti pikseleinä.
Toimenpide MoveTo(X, Y: Kokonaisluku);
Siirtää sijainnin pikseliin, jossa on osoite (X, Y).
Proseduuri LineTo(X, Y: kokonaisluku);
Piirtää suoran viivan nykyisen sijainnin pisteestä pikseliin, jossa on osoite (X, Y). Osoitteesta (X, Y) tulee nykyisen sijainnin piste.
Toimenpide FillRect( konst Rect: TRect);
Täyttää suorakulmion Rect kankaalle nykyisellä siveltimellä. Voidaan käyttää muun muassa osan kuvan pyyhkimiseen kankaalta.

Kirjoitetaan vain näitä canvas-menetelmiä käyttäen sovellus kuvalle komponenttikankaalle Kuva teksti, joka syötetään komponenttiin Muistio:

Ensimmäinen asia, jonka teemme, on alustaa muuttujat ohjelman käynnistyessä. Piirustusalueen koko on määritettävä (tätä varten luodaan globaali muuttuja Rect, jonka tyyppi on TRect) ja asetettava taustaväri Kuva valkoinen:

menettelyä TForm1.FormCreate(Lähettäjä: TObject);
alkaa
Vasen:=0;
Rect.Top:=0;
Rect.Right:=Kuva1.Leveys;
Rect.Bottom:=Kuva1.Korkeus;
Image1.Canvas.Brush.Color:=clWhite;
loppu;

Piirrä sitten kehys kuvan sivuille:

menettelyä TForm1.page;
alkaa
kanssa Image1.Canvas tehdä
alkaa
Siirrä(0, 0);
LineTo(Kuva1.Leveys-1, 0);
LineTo(Kuva1.Leveys-1, Kuva1.Korkeus-1);
LineTo(0, Kuva1.Korkeus-1);
LineTo(0; 0);
loppu;
loppu;

Kokeillaan mitä tapahtui. Kaikki toimii, mutta kehys ei ole vielä näkyvissä. Lisätään siis menettely sivu menettelyssä FormCreate. Nyt se on kaunista. Seuraavaksi kirjoitamme yksinkertaisen menettelyn kuvan poistamiseksi ja tyhjentämiseksi. Se on kutsuttava ennen kuvapäivitystä, muuten edellinen ja myöhemmät kuvat menevät päällekkäin.

menettelyä TForm1.clearing;
alkaa
Kuva1.Canvas.FillRect(Rect); //Suorakulmio Rect on täynnä valkoista ja kuva poistetaan.
loppu;

Nyt on itse tekstin tulostusprosessin vuoro. Aloitetaan tekstin piirtäminen pisteestä (3, 3) - arkin vasemmasta yläkulmasta, pienellä 3 pikselin sisennyksellä. Jokainen seuraava rivi siirretään rivin korkeudella:

menettelyä TForm1.prn;
var i: Kokonaisluku;
alkaa
kanssa Image1.Canvas tehdä
varten i:=1 to Muistio1.Lines.Count tehdä
TextOut(3, 3+(i-1)*Tekstinkorkeus("A"), Memo1.Lines);
loppu;

Nyt kaikki on valmis tulostamaan tekstiä. Teemme tämän OnChange-tapahtuman avulla:

menettelyä TForm1.Memo1Change(Lähettäjä: TObject);
alkaa
selvitys;
prn;
sivu;
loppu;

Ja lopuksi, menettely fontin koon muuttamiseen:

menettelyä TForm1.Edit1Change(Lähettäjä: TObject);
alkaa
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Muistio1Muuta(Lähettäjä);
loppu;

Voit muokata tätä ohjelmaa tulostamaan tekstiä. Jotta voit työskennellä tulostimen kanssa, sinun on liitettävä moduuli Tulostimet:

yksikkö Kappale 1;

Käyttöliittymä

käyttää
Windows, Viestit, SysUtils, Vaihtoehdot, Luokat, Grafiikka, Ohjaimet, Lomakkeet,
Dialogit, StdCtrls, Tulostimet ;

Kun tulostinta käytetään kankaana, menetelmää kutsutaan käynnistämään tulostus BeginDoc, sitten asiakirja tulostetaan, tulostus päättyy kutsumalla menetelmää EndDoc:

Printer.BeginDoc;
kanssa Tulostin. Canvas tehdä
alkaa
...Tulosta asiakirja...
loppu;
Printer.EndDoc;

Tulostinrainan leveys ja korkeus ovat saatavilla ominaisuuksien kautta Printer.PageWidth Ja Tulostin.Sivun korkeus. Voit lopettaa tulostamisen yhdelle sivulle ja aloittaa tulostamisen toiselle tällä menetelmällä Tulostin.Uusi sivu.

LABORATORIOTYÖT

AIHE: « Grafiikka sisäänDelfoi– yksinkertaisimman rakentaminen
geometriset kuviot"

Lyhyt tieto teoriasta

Delphi tarjoaa kehittäjälle kolme tapaa näyttää grafiikkaa:

    piirtää ohjelman ollessa käynnissä

    valmiiksi luodun grafiikan käyttö

    kuvien luominen graafisten komponenttien avulla

Graafeiden rakentamiseksi on luotu erityisluokkia, jotka tarjoavat työkaluja ja menetelmiä piirtämiseen: työkalut on kuvattu kolmessa luokkassa - Tfont, Tpen, Tbrush; Piirustusalueen ja menetelmät tarjoaa Tcanvas-luokka.

LuokkaTfont– määrittää tekstin näyttämiseen kankaalla käytettävän fontin ominaisuudet. Luokan ominaisuudet on kuvattu osiossa "Useimmille komponenteille saatavilla olevat perusominaisuudet".

LuokkaTpen– määrittää kynän (lyijykynän) ominaisuudet, jolla viivat piirretään.

Ominaisuudet luokkaa Tpen:

Väri:Tcolor – viivan väri (oletus – musta)

Leveys:integer – viivan paksuus pikseleinä;

Tyyli = (psSolid, psDash, psDot, psdashDot, psClear) – määrittää viivatyylin (yhtenäinen, katkoviiva, katkoviiva, katkoviiva, näkymätön)

Luokkasivellin– määrittää kuvan pinnan maalaavan siveltimen ominaisuudet.

Ominaisuudet luokkaa sivellin:

Väri:Tcolor – siveltimen väri (oletus – valkoinen)

Tyyli– harjakuvio, voi saada seuraavat arvot:

BsSolid – kiinteä väritys

BsClear – varjostuksen puute

BsVertical – pystysuorat viivat

BsBdiagonal – oikeat diagonaaliset viivat

BsDiagCross – vino solu

BsHorizontal – vaakasuuntaiset viivat

BsFdiagonal – vasemmanpuoleiset lävistäjäviivat

BsCross – häkki

LuokkaTcanvas– määrittää pinnan, jolle luotu kuva sijoitetaan, ja työkalut, joilla kuva luodaan: fontti, kynä, sivellin.

Oletuksena koko lomakkeen asiakasaluetta käytetään työalueena (kanvas) (ilman lomakkeen otsikkoa, päävalikkoa ja vieritysrivejä), mutta pienempiä työalueita voi jakaa lomakkeen sisällä komponenttien avulla. Maali laatikko tai Kuva. Kanvaskoordinaatin alkuperä on työalueen vasen yläkulma, työalueen leveys määräytyy ominaisuuden mukaan ClientWidth, korkeus – omaisuus ClientHeight.

Ominaisuudet luokkaa Tcanvas:

Kangas:Tcanvas – määrittää piirustusalueen

Harjata:Tbrush – sivellin suljettujen muotojen maalaamiseen

Fontti:Tfont – fontti tekstin näyttämiseen kankaalle

Kynä:Tpen – lyijykynä (kynä) piirtämiseen

PenPos:Tpoint – näkymätön kohdistimen nykyinen sijainti kankaalla

Kommentti : T-pisteen tyyppi – määritellään seuraavasti:

Tyyppi Piste = tietue

Pikselit: Tcolor - määrittää kanvaspikseleiden värit, X, Y - pikselikoordinaatit. Pikselit-ominaisuutta on kätevä käyttää kaavioiden piirtämiseen käyttämällä valitun värisiä pisteitä.

TCanvas-luokan päämenetelmät

    menettelyä Muuttaa(x,y:kokonaisluku); - siirtää kynää piirtämättä viivaa pisteeseen, jossa on koordinaatit (x, y).

    Menettely LineTo(x,y:kokonaisluku); - piirtää suoran nykyisestä pisteestä pisteeseen, jossa on koordinaatit (x, y).

Esimerkki : Piirrä muotoon vino sininen viiva muodon vasemmasta yläkulmasta oikeaan alakulmaan.

Pen.color:= clblue;

MoveTo(0,0); LineTo(asiakkaan leveys, asiakkaan korkeus);

    menettelyä Suorakulmio(x1,y1,x2,y2:kokonaisluku); - piirtää suorakulmion: x1,y1 – vasemman yläkulman koordinaatit; x2, y2 ovat oikean alakulman koordinaatit.

Esimerkki : Piirrä kuvion keskelle keltainen neliö, jonka sivu on 60 pikseliä.

var Xc,Yc: kokonaisluku; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

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

    menettelyä Ellipsi(x1,y1,x2,y2:kokonaisluku); - piirtää ellipsin, joka on piirretty suorakulmioon määritetyillä koordinaatteilla.

Esimerkki : piirrä PaintBox-komponenttiin kirjoitettu ellipsi.

PaintBox1.Canvas.Pen.Width:=4; //viivan leveys = 4 pikseliä

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

    menettelyä Monikulmio(); - piirtää suljetun monikulmion, jonka määrittää koordinaattien joukko.

Esimerkki : piirrä täytetty timantti, joka yhdistää muodon sivujen keskipisteet

Var Xc,Yc:kokonaisluku; // lomakkeen asiakasalueen keskustan koordinaatit

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // oranssi väri varjostus

Canvas.Polygon();

loppu;

    Menettely Arc(x1,y1,x2,y2,x3,y3,x4,y4:kokonaisluku); - näyttää suorakulmion (x1, y1, x2, y2) rajoittaman ellipsin kaaren. Kaari näytetään pisteestä, jolla on koordinaatit (x3,y3) koordinaattipisteeseen (x4,y4) vastaan myötäpäivään.

Esimerkki : piirrä ellipsikaari, joka yhdistää komponentin yläsivun keskikohdan
PaintBox oikean puolen keskellä.

Toimenpide Tform1.Button1Click(Lähettäjä:Tobject);

Var X3,y3,x4,y4: Kokonaisluku;

Tee PaintBox1:llä

Canvas.Pen.Color:= clWhite;

Canvas.Pen.Width:= 3;

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

X3:= ClientWidth div 2;

X4:= ClientWidth;

Y4:= ClientHeight div 2;

Canvas.Pen.Color:= clMaroon;

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

loppu;

    menettelyä Sointu(x1,y1,x2,y2,x3,y3,x4,y4:kokonaisluku); - piirtää jänteen - suoran, joka yhdistää 2 ellipsin pistettä: pisteen, jonka koordinaatit (x3, y3) ja pisteen (x4, y4).

Esimerkki : Korvaa ARC-menetelmän esimerkissä Chord-menetelmä ja saat seuraavan tuloksen.

    menettelyä Piirakka(x1,y1,x2,y2,x3,y3,x4,y4:kokonaisluku); - piirtää ellipsin janan, joka yhdistää ellipsin keskipisteen koordinaateilla (x3,y3) ja (x4,y4).

Esimerkki : Kuvittele ARC-menetelmälle annetussa esimerkissä PIE-menetelmä ja saat tämän tuloksen.

    menettelyä TextOut(x,y:kokonaisluku;Teksti:merkkijono); - tulostaa Text-parametrissa välitetyn merkkijonon suorakulmioon, jonka vasen yläkulma on määritetty x,y koordinaatit. Fontin ominaisuudet asetetaan Font-työkalulla.

Esimerkki : kirjoita piirretyn kaavion nimi lomakkeen alaosaan.

Canvas.Font.Height:=20 ; //merkin korkeus 20 pikseliä

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, 'funktion SIN(X) kaavio');

Graafiset komponentit

Delphi tarjoaa useita valmiita komponentteja, joiden avulla voit parantaa käyttöliittymä. Nämä komponentit sijaitsevat sivulla Lisätiedot Ja Järjestelmä komponenttipaletteja.

KomponenttiKuva(LuokkaAikataulu) – luotu ulkoisiin tiedostoihin tallennettujen graafisten kuvien näyttämiseen tiedostopäätteillä:

    kuvake (kuvake, kuvake);

    Bmp (bittikartta, bittikartta);

    Wmf, .emf (metatiedosto);

    Jpg, .jpeg (JPEG-pakattu kuva).

Perus ominaisuuksia :

Automaattinen koonmääritys:boolean – kun arvo on tosi, komponentti säätää mitat ladatun kuvan koon mukaan; oletusarvo on epätosi.

Venyttää:boolean – jos tosi, ladattu arvo kattaa komponentin koko alueen; oletusarvo on epätosi.

Kangas:Tcanvas – käytetään piirtämiseen komponentin sisään ohjelman suorittamisen aikana.

Kuva:Tpicture - Määrittää komponenttiin sijoitetun kuvan.

Perus menetelmiä luokkaa Tkuva:

Menettely LoadFromFile(Tiedostonimi:merkkijono); - lataa kuvan tiedostosta nimeltä Tiedostonimi komponenttiin.

Menettely SaveToFile(Tiedostonimi:merkkijono); -tallentaa kuvan komponentista tiedostoon nimeltä Tiedostonimi.

KomponenttiMaali laatikko - määrittää suorakaiteen muotoisen piirustusalueen. Pääomaisuus on Kangas, kaikki Tcanvas-luokan menetelmät ovat käytettävissä, sillä ei ole itsenäisiä ominaisuuksia.

Esimerkki : piirrä keltainen ellipsi, joka on merkitty PaintBox1-komponenttiin.

Toimenpide Tform1Button1Click(lähettäjä:Tobject);

Kanssa PaintBox1.Canvas tehdä

Brush.Color:=clyellow;

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

loppu;

KomponenttiBitBtn rasteripainike

BitBtn-painike, toisin kuin tavallinen, voi sisältää otsikon (Caption) lisäksi ominaisuuden määrittämän kuvan Glyph. On joukko tavallisia BitBtn-painikkeita, joissa on ennalta määritetyt ominaisuudet (tietty kuva, merkintä ja tarkoitus) - vakiopainikkeen tyyppi valitaan ominaisuuden kautta Ystävällinen. Kind=(bkCustom, bkAbort,bkCancel, bkClose…)

Tehtävä nro 1

Luo sovellus, joka sisältää kaksi kuvakomponenttia ja 4 painiketta päälomakkeessa ("Lataa kuva", "Rakenna geometrinen kuvio", "Vaihda väriä", "Poistu") ja jonka avulla voit:

a) ladata käyttäjän valitsemaan Image1-komponenttiin graafinen kuva niin, että kuva peittää koko Kuva-komponentin alueen.

b) Näytä Image1-komponentin alla teksti "Tämä on kuva tiedostosta.

(kaikki komponentin koon ja sijainnin mittauksetKuva1 kirjoitus pitäisi
sijaitsee tiukasti komponentin alla).

c) piirrä geometrinen kuvio Image2-komponentin sisään: täytetty ellipsisegmentti, joka yhdistää Kuva-komponentin keskikohdan Kuva-komponentin ala- ja oikeanpuoleisen reunan keskikohtiin.

(komponentin koon ja sijainnin muutoksilleKuva2 kuva on rakennettava oikein, ts. komponenttia koskevien eritelmien mukaanKuva2)

d) muuttaa Image2:ssa piirretyn hahmon viivan väriä käyttäjän pyynnöstä ColorDialog-komponentin avulla.

Tehtävä nro 2

Luo sovellus, jonka avulla voit sijoittaa satunnaisesti useita tarroja (esimerkiksi sanan "Hurraa!") Image-komponenttiin. Käytä generaattoria toteuttaaksesi satunnaisia ​​numeroita Randomize ja Random-toiminto.

Käyttäjän tulee syöttää Image-komponentin mitat, kuvassa näkyvä sana ja sanojen määrä.

Tehtävä nro 3

Luo sovellus, jonka avulla voit valita geometrisen muodon nimen ListBoxista ja piirtää valitun muodon Image-komponenttiin. Muodon väri valitaan RadioGroup-komponentista.

Tehtävä nro 4

Jaa PaintBox1-komponentti 4 yhtä suureen osaan, maalaa jokainen osa eri värillä, esimerkiksi: sininen, keltainen, vihreä, punainen.

Kirjoita kunkin PaintBox1:n kulman viereen kulman koordinaatit (suhteessa sen lomakkeen alkupisteeseen, jossa PaintBox1-komponentti sijaitsee).

Tehtävä nro 5

KANSSA

Valitse piirrettävän muodon tyyppi Radiogroup1-komponentista, täyttöväri Radiogroup2-komponentista ja piirrä valittu muoto Image-komponenttiin.

Tehtävä nro 6

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Jaa PaintBox1-komponentti kahteen yhtä suureen osaan, piirrä kunkin osan sisään ellipsi, joka on täytetty käyttäjän ColorDialogissa valitsemalla värillä.

Tehtävä nro 7

KANSSA Luo sovellus, jonka avulla voit:

valitse geometrisen muodon nimi ListBoxista ja piirrä valittu muoto Image-komponenttiin. Muoto tulee täyttää käyttäjän ColorDialog-komponentissa valitsemalla värillä, jos RadioGroup-komponentissa on valittu Kyllä.

Tehtävä nro 8

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Jaa PaintBox1-komponentti 4 yhtä suureen osaan, piirrä kunkin osan sisään erilainen geometrinen muoto (ellipsi, rombi, kolmio ja suorakulmio). Käyttäjä valitsee kunkin muodon värin ColorGridissa.

Tehtävä nro 9

valitse geometrisen muodon nimi ListBoxista
muotoja (ellipsi, rombi, suorakaide) ja piirtää
valittu muoto Kuva-komponentissa. Sijainti
muodot kuvakomponentissa (I neljännes, II neljännes,

III tai IV neljännes) ja kuvion väri valitaan
RadioGroupin komponenteista.

Tehtävä nro 10

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Varmista, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi lomakekoko.

Jaa PaintBox1-komponentti 4 yhtä suureen osaan, piirrä jokaisen osan sisään käyttäjän Comboboxissa valitsema geometrinen muoto (ellipsi, rombi, kolmio ja suorakulmio). Figuurin värin valitsee käyttäjä ColorBoxista.

Tehtävä nro 11

Luo sovellus, jonka avulla voit:

valitse radioryhmäkomponentista piirustuksen sijainti

aseta oikean kolmion Kuva-komponentissa
hahmon varjostuksen väri tai ääriviivan väri riippuen
valintaruutupainikkeiden ottaminen käyttöön. Valitse väri kautta
ColorGrid-komponentti.

Tehtävä nro 12

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Varmista, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi lomakekoko.

Jaa PaintBox1-komponentti 2 yhtä suureen osaan, piirrä yhden osan sisään käyttäjän Comboboxissa valitsema geometrinen muoto (ellipsi, rombi, kolmio ja suorakulmio). Figuurin värin valitsee käyttäjä ColorBoxista.

Voit esimerkiksi muuttaa lomakkeen väriä seuraavasti:

muoto1.Väri:= ColorBox1.Colors;

Tehtävä nro 13

Luo sovellus, jonka avulla voit:

a) piirrä neliö muodon keskelle (käyttäjä syöttää neliön sivun koon). Varmista, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi lomakekoko.

b) jaa neliö yhteen tai kahteen diagonaaliin, riippuen siitä, onko valintaruudun painikkeita sisällytetty, ja maalaa jokainen tuloksena oleva kolmio eri värillä. Värin valinnan tekee käyttäjä.

Tehtävä nro 14

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Varmista, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi lomakekoko.

Jaa PaintBox1-komponentti kahteen yhtä suureen osaan, piirrä yhden osan sisään rombi ja toisen osan sisään mikä tahansa kolmio. Figuurin värin valitsee käyttäjä ColorBoxista.

Voit esimerkiksi muuttaa lomakkeen väriä seuraavasti:

muoto1.Väri:= ColorBox1.Colors;

Tehtävä nro 15

Luo sovellus, jonka avulla voit:

a) aseta Kuvakomponentin mitat vaaka- ja pystysuunnassa samoiksi ja samaksi kuin käyttäjän näppäimistöltä syöttämä numero;

(edellyttäen, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi kuin pienempi lomakekoko)

b) jaa kuvakomponentti 4 yhtä suureen neliöön, joissa on kaksi sinistä viivaa;

c) Piirrä jokaisen tuloksena olevan neliön sisään siihen kirjoitettu ympyrä (anna käyttäjän valita ympyröiden väri värinvalintaikkunan kautta).

Tehtävä nro 16

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Varmista, että sivun koko ei voi olla tekstiä, negatiivinen luku tai pienempi lomakekoko.

Jaa PaintBox1-komponentti 9 yhtä suureen osaan ja maalaa kukin tuloksena oleva shakkilaudan suorakulmio. Täyttövärin valitsee käyttäjä ColorBoxissa.

Voit esimerkiksi muuttaa lomakkeen väriä seuraavasti:

muoto1.Väri:= ColorBox1.Colors;

Tehtävä nro 17

Aseta kaksi kuvakomponenttia ja neljä painiketta lomakkeelle: Viivan väri, Täyttöväri, Ok ja Poistu; ja Muokkaa-komponentti.

Kun napsautat OK-painiketta, kuvassa 1 piirretään neliö, jonka sivu on X, ja kuvassa 2 suorakulmainen kolmio, jossa on yhtäläiset jalat, joiden jokaisen pituus on X.

Kolmion kärki on sama kuin kuvan2 origon. Yksi neliön pisteistä osuu samaan kuvan1 alkupisteen kanssa.

OK-painike on käytettävissä vain, kun olet valinnut viivan värin ja täyttövärin muodon piirtämistä varten.

X – valitsee satunnaisesti Random-funktiolla ja X:n arvon tulee näkyä Edit-komponentissa.

Tehtävä nro 18

Luo sovellus, jonka avulla käyttäjä voi määrittää PaintBox1-komponentin mitat (pikseleinä).

Jaa PaintBox1-komponentti 4 yhtä suureen osaan, käyttäjän valitseman osan sisään tulee rakentaa täytetty ympyrä, jonka koon käyttäjä määrittää. Käyttäjä valitsee täyttövärin ColorBoxista.

Voit esimerkiksi muuttaa lomakkeen väriä seuraavasti:

muoto1.Väri:= ColorBox1.Colors;

Luettelo komponenteista graafisen tiedon näyttämiseen

Graafisten tietojen näyttämiseksi Delphi-kirjasto tarjoaa komponentteja, joiden luettelo on taulukossa 4.1.

Taulukko 4.1 Graafisten tietojen näytön osat Piktogrammi

Komponentti

Sivu

Kuvaus

Kuva

Käytetään grafiikan näyttämiseen: kuvakkeet, bittikartat ja metatiedostot.


PaintBox (ikkuna piirtämiseen)

Käytetään luomaan lomakkeelle alue, johon voit piirtää.


DrawGrid (piirustustaulukko)

Käytetään ei-tekstitietojen näyttämiseen riveissä ja sarakkeissa.


Kaavio (kaaviot ja kaaviot)

Komponentti kuuluu TChart-komponenttiperheeseen, jota käytetään kaavioiden ja kaavioiden luomiseen.


Lisäksi voit näyttää ja syöttää graafisia tietoja minkä tahansa näyttögrafiikan pinnalle kankaalla.

Kangas Kangas ei ole osa, joten tiukasti ottaen sitä ei tule pitää tämän kirjan puitteissa. Mutta koska monilla komponenteilla, erityisesti lomakkeilla, on ääriviivat ja ääriviivat tarjoavat mahdollisuuden näyttää erilaisia ​​graafisia tietoja, on silti suositeltavaa antaa alustavaa tietoa ääriviivoista.

Kanvas on komponentin alue, jolle voit piirtää tai näyttää valmiita kuvia. Se sisältää ominaisuuksia ja menetelmiä, jotka yksinkertaistavat huomattavasti Delphi-grafiikkaa. Kaikki monimutkaiset vuorovaikutukset järjestelmän kanssa ovat piilotettuja käyttäjältä, joten tietokonegrafiikasta kokematon henkilö voi piirtää Delphissa.

Jokaisella ääriviivan pisteellä on koordinaatit X Ja Y. Kankaan koordinaattijärjestelmä, kuten muuallakin Delphissä, on peräisin kankaan vasemmasta yläkulmasta. Koordinoi X kasvaa liikuttaessa vasemmalta oikealle, ja koordinaatti Y- liikuttaessa ylhäältä alas. Koordinaatit mitataan pikseleinä. Pikseli on suunnittelun pinnan pienin elementti, jota voidaan käsitellä. Pikselin tärkein ominaisuus on sen väri.

Kanvaalla on omaisuutta Pikselit. Tämä ominaisuus on kaksiulotteinen taulukko, joka vastaa kankaan väreistä. Esimerkiksi, Kangas. Pikselit vastaa pikselin väriä 10. vasemmalta ja 20. ylhäältä. Voit käsitellä pikselijoukkoa kuten mitä tahansa ominaisuutta: muuttaa väriä antamalla pikselille uusi arvo tai määrittää sen värin siihen tallennetun arvon perusteella. Esimerkiksi, Kangas. Pikselit: = 0 tai Kangas. Pikselit:=clMusta- Tällä asetetaan pikselin mustaksi.

Omaisuus Pikselit voidaan käyttää piirtämiseen kankaalle. Yritetään piirtää muodon ääriviivalle siniaaltokuvaaja pikseli kerrallaan. Voit tehdä tämän lomakkeen tapahtumakäsittelijällä OnPaint(piirustus) voit lisätä seuraavan koodin:

TForm1. FormPaint(Lähettäjä: TObject);

var,Y:todellinen; // funktion koordinaatit,PY: longint; // pikselin koordinaatit

alkaa:=clWhite;

varten PX:=0 to ClientWidth tehdä

(X on graafin argumentti,

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

(PY - pikselikoordinaatti,

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

(Asettaa valitun värin

pikseli (Tietoja kirkkaudesta). Pikselit: = 0;

loppu;

Suorita tämä testisovellus ja näet kuvan 4.1 a tuloksen. Siniaaltokaavio osoittautui, vaikkakaan ei kovin hyvä, koska on jaettu yksittäisiin pisteisiin - pikseleihin.

Canvas - luokan esine TCanvas on monia menetelmiä, joiden avulla voit piirtää kaavioita, viivoja ja muotoja ominaisuuden avulla Kynä- höyhen. Tämä ominaisuus on objekti, jolla puolestaan ​​on useita ominaisuuksia. Yksi niistä on jo tuntemasi kiinteistö Väri- väri, jolla piirrosta käytetään. Toinen ominaisuus - Leveys(viivan leveys). Leveys määritetään pikseleinä. Oletusleveys on 1.

Omaisuus Tyyli määrittää linjan tyypin. Tämä ominaisuus voi ottaa seuraavat arvot:

Kanvaalla on omaisuutta PenPos tyyppi TPoint(cm .). Tämä ominaisuus määrittää kynän nykyisen sijainnin kanvaskoordinaateissa. Kynän siirtäminen ilman viivaa, ts. muuttaa PenPos, valmistettu canvas-menetelmällä Siirrä kohteeseen(X,Y). Täällä ( X, Y) - sen pisteen koordinaatit, johon kynä liikkuu. Tästä nykyisestä pisteestä tulee lähtökohta, josta menetelmä LineTo(X,Y) voit piirtää viivan pisteeseen koordinaateilla ( X,Y). Tässä tapauksessa nykyinen piste siirtyy linjan loppupisteeseen ja uuteen kutsuun LineTo vetää pisteen tästä uudesta nykyisestä pisteestä.

Yritetään piirtää sinikaavio edellisestä esimerkistä kynällä. Tässä tapauksessa lomakkeen tapahtumakäsittelijä OnPaint voi näyttää tältä:

menettelyä TForm1. FormPaint(Lähettäjä: TObject);

var,Y:todellinen; // funktion koordinaatit,PY: longint; // pikselin koordinaatit

alkaa: =clWhite;. MoveTo(0,ClientHeight div 2);

varten PX: =0 to ClientWidth tehdä

(X on graafin argumentti,

joka vastaa pikseliä koordinaatilla РХ):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - pikselikoordinaatti,

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

(kaavioon piirretään viiva). LineTo(PX,PY);

Näet tämän version sovelluksen tuloksen kuvassa 4.1 b. Kuten näette, grafiikan laatu on parantunut huomattavasti.

Kynä voi piirtää suorien viivojen lisäksi myös muotoja. Täydellinen luettelo kynää käyttävistä canvas-menetelmistä on Delphin sisäänrakennetussa ohjeessa. Toistaiseksi annamme esimerkkinä vain yhden niistä - Ellipsi, joka piirtää ellipsin tai ympyrän. Se julistetaan nimellä

menettelyä Ellipsi(X1, Y1, X2, Y2: kokonaisluku);

missä ovat parametrit X1, X2, Y1, Y2 määrittää ellipsiä tai ympyrää kuvaavan suorakulmion koordinaatit. Esimerkiksi operaattori

ellipsi(10, 40, 20, 50);

piirtää ympyrän, jonka halkaisija on 10 ja keskikoordinaatit (15, 45).

Yleensä kuvioita ei piirretä tyhjinä, vaan ne on täytetty canvas-ominaisuuden avulla Harjata-harja. Omaisuus Harjata on esine, jolla puolestaan ​​on useita ominaisuuksia. Omaisuus Väri määrittää täyttövärin. Omaisuus Tyyli määrittää täyttökuvion (varjostuksen). Oletusarvo Tyyli on yhtä suuri bsKiinteä, mikä tarkoittaa kiinteää väritystä Väri.

Kynällä Kynä On vielä yksi omaisuus, jota emme ole vielä harkinneet. Tämä ominaisuus on tila(tila). Oletusarvo Mode = pmCopy. Tämä tarkoittaa, että viivat piirretään ominaisuudessa määritetyllä värillä Väri. Mutta myös muut tilat ovat mahdollisia, joissa ei vain oteta huomioon väriä Väri, mutta myös vastaavien taustapikseleiden väriä. Mielenkiintoisin näistä tiloista on pmNotXor- lisäys taustalla käyttämällä käänteistä poissulkevaa TAI. Jos tämä tila on asetettu, saman kuvan piirtäminen uudelleen samaan paikkaan kankaalle poistaa aiemmin piirretyn kuvan ja palauttaa pikselivärit, jotka olivat ennen ensimmäistä kuvaa.

Tämä tilan ominaisuus pmNotXor voidaan käyttää yksinkertaisten animaatioiden luomiseen. Riittää, kun piirrät jotain, pyyhit sitten piirtämäsi, piirrät sen uudelleen hieman muuttuneena - ja piirustus näyttää heräävän eloon.

Kokeile tehdä itse yksinkertainen animaatio - liikkuva ympyrä. Käynnistä uusi sovellus ja siirry kohtaan toteutus lisää mainos

X,Y: kokonaisluku;

Tämä ottaa käyttöön globaaleja muuttujia X Ja Y- nykyisen kuvan koordinaatit.

Muototapahtumassa OnPaint lisää lausunnot

Harjata. Väri:=clWhite;:=clWhite;. Kynä. Tila:=pmNotXor;

Ensimmäinen näistä käyttäjistä asettaa siveltimen värin valkoiseksi Harjata. Tämä tarkoittaa, että ympyräsi maalataan sisältä valkoiseksi. Toinen operaattori asettaa lomakepinnan taustavärin valkoiseksi.

Kolmas käyttäjä asettaa kynätilan pmNotXor, jonka avulla voit poistaa vanhan kuvan ennen uuden piirtämistä.

Jopa yksinkertaisin animaatio vaatii synkronoinnin. Muuten liikkeen nopeus määräytyy tietokoneen nopeuden mukaan. Siksi siirrä komponentti lomakkeeseen Ajastin- ajastin Järjestelmä-sivulta. Tämä komponentti on kuvattu kohdassa 5.7 .

Voit katsoa sen sieltä Yksityiskohtainen kuvaus. Aseta sen omaisuus toistaiseksi Intervalli yhtä suuri kuin esimerkiksi 30 (tämä on valotusaika millisekunteina, mutta reaaliaika suljinaika on pidempi - katso kohta 5.7) ja aseta ominaisuus Käytössä yhtä suuri väärä(tämä tarkoittaa, että ajastin ei käynnisty automaattisesti, kun sovellus käynnistetään).

Tämän komponentin tapahtumakäsittelijässä OnTimer lisää lausunnot

// Poista edellinen kuva. Ellipsi (X-5, Y, X+5, Y-1Q); (X);

// Piirrä uusi kuva. Ellipsi (X-5, Y, X+5, Y-10);

// Pysäytä, kun saavut lomakkeen loppuun

jos(X >= ClientWidth-20) sitten. Käytössä: = false;

Ensimmäinen näistä operaattoreista piirtää ympyrän siihen paikkaan, johon se on aiemmin piirretty, ts. poistaa edellisen kuvan.

Viimeinen operaattori pysäyttää kuvan lomakkeen reunaan.

Lisää nyt painike lomakkeeseen Painike ja aseta operaattorit napsautuskäsittelijään sen päälle

X: =10;: =100;. Ellipsi (X-5, Y, X+5, Y-10); Käytössä: =true;

Kaksi ensimmäistä operaattoria määrittävät ympyrän alkukoordinaatit. Kolmas operaattori piirtää ympyrän aloitusasentoonsa ja neljäs operaattori käynnistää ajastimen.

Lähetä sovellus, suorita se, napsauta painiketta. Näet kuvan ympyrästä, joka liikkuu muodon poikki vasemmalta oikealle. Käytä sitten mielikuvitustasi ja muunna tämä ei kovin kiinnostava sovellus joksikin jännittävämmäksi.

Kanvas voi näyttää ohjelmallisesti luotujen kuvien lisäksi myös grafiikkatiedostoihin tallennettuja kuvia. Vain kankaalla itsessään ei ole menetelmää kuvan lataamiseen tiedostosta. Siksi tiedosto on ladattava johonkin muuhun graafiseen objektiin, joka voi vastaanottaa tietoja grafiikkatiedostoista. Ja sitten kirjoita kuva tästä objektista kankaalle käyttämällä canvas-menetelmää Piirrä. Sen kuvaus:

Draw(X, Y: Kokonaisluku; Grafiikka: TGrafiikka);

Tässä ovat parametrit X Ja Y määritä kuvan vasemman yläkulman koordinaatit kankaalle, a Graafinen- esine, joka tallentaa tietoa. Tällainen objekti voi olla esimerkiksi tyyppinen objekti TBitMap, suunniteltu tallentamaan bittimatriiseja. Katsotaan miltä tämä kaikki näyttää käytännössä.

Avaa uusi sovellus, vedä komponentti lomakkeelle OpenPictureDialog Dialogit-sivulta (tämä on osa grafiikkatiedostojen avaamisikkunaa - katso osa 8.2 ) ja painiketta Painike. Paikka OpenPictureDialog missä tahansa lomakkeessa, koska tämä komponentti ei ole visuaalinen, ja aseta painike lomakkeen alaosaan. Lisää seuraava koodi painikkeen napsautuskäsittelijään:

menettelyä TForm1. Button1Click(Lähettäjä: TObject);

var: TBitMap;

// Käyttäjän valinta graafinen tiedosto

jos OpenPictureDialog1. Suorittaa sitten

// Luo BitMap-objekti, jonka tyyppi on TBitMap: =TBitMap. Luoda;

// Siirrä kuva lomakekankaalle. Piirrä(10, 10, BitMap);

//Bittikartta-objektin tuhoaminen. Vapaa;

loppu;

Tämä koodi luo väliaikaisen tyyppisen objektin TBitMap Nimen kanssa BitMap. Sitten kutsutaan valintaikkuna grafiikkatiedoston avaamiseksi OpenPictureDialog1 ja jos käyttäjä on valinnut tiedoston, se ladataan kohteeseen BitMap menetelmä LoadFromFile. Sitten menetelmällä Piirrä ladattu kuva kopioidaan kankaalle alueelle, jossa on vasemman yläkulman koordinaatit (10,10). Tämän jälkeen väliaikainen kohde BitMap on tuhottu.

Käynnistä sovellus ja napsauta sen painiketta. Näet, että voit ladata minkä tahansa tyyppisiä grafiikkatiedostoja. bmp ja se näkyy lomakkeen ääriviivalla (katso kuva 4.2 a). Löydät grafiikkatiedostoja Kuvat-hakemistosta. Delphi 5:ssä ja 4:ssä se sijaitsee yleensä hakemistossa. \program files\Common Files\Borland Shared. Delphi 3:ssa se sijaitsee hakemistossa. \program files\Borland\Delphi 3 ja Delphi 1 -hakemistossa Delphi 16. Kuvat-hakemistossa on erityisesti alihakemisto \Images\Splash\16Color\, joka tallentaa kuvan 1 esimerkissä ladatun tiedoston. 4.2

Olet luonut hyvän sovelluksen graafisten tiedostojen katseluun. Mutta nyt yritetään nähdä sen suurin haittapuoli. Siirry johonkin toiseen ohjelmaan sulkematta sovellusta, esimerkiksi palaa Delphiin. Palaa sitten käynnissä olevaan sovellukseesi tekemättä siellä mitään. Jos ohjelmaikkuna, johon menit, peitti sovelluksesi ikkunan kokonaan, palatessasi siihen näet, että ikkunassa oleva kuva on kadonnut. Jos sovellusikkunasi oli vain osittain päällekkäinen, palatessasi sovellukseesi saatat nähdä kuvan 4.2 b:n kaltaisen tuloksen.

Näet, että jos jonkin muun sovelluksen ikkuna menee tilapäisesti päällekkäin sovelluksesi ikkunan kanssa, lomakkeen ääriviivalle piirretty kuva on pilaantunut. Katsotaanpa, kuinka voimme poistaa tämän epäkohdan.

Jos ikkuna on tukkeutunut ja kuva on vioittunut, käyttöjärjestelmä ilmoittaa sovellukselle, että jokin ympäristössä on muuttunut ja sovelluksen tulee ryhtyä tarvittaviin toimenpiteisiin. Heti kun ikkunapäivitys vaaditaan, sille luodaan tapahtuma OnPaint. Tämän tapahtuman käsittelijässä (meidän tapauksessamme lomaketapahtumassa) sinun on piirrettävä kuva uudelleen.

Uudelleenpiirtäminen voidaan tehdä eri tavoilla sovelluksesta riippuen. Esimerkissämme olisi mahdollista ilmoittaa muuttuja BitMap(operaattori var BitMap: TBitMap) yllä olevan menettelyn jälkeen, ts. Tee tästä muuttujasta globaali sijoittamalla se suoraan osioon toteutus. Operaattori BitMap. Vapaa voidaan siirtää lomakkeen tapahtumakäsittelijään OnDestroy, joka tapahtuu, kun sovellus suljetaan. Sitten koko sovelluksesi suorittamisen ajan sinulla on kopio kuvasta komponentissa BitMap ja sinun tarvitsee vain päästä tapahtumakäsittelijään OnPaint lomakkeella on vain yksi operaattori:

Piirrä(10, 10, BitMap);

Tee tämä, niin näet, että lomakkeen kuva ei huonone ikkunoiden päällekkäisyyden vuoksi.

Tarkastelun menetelmän lisäksi Piirräääriviivalla on myös kopiointimenetelmä CopyRect:

CopyRect(Kohde: TRect; Canvas: TCanvas; Lähde: TRect);

Menetelmä kopioi määritetyn parametrin Lähde kuva-alue kuvalähdekankaalla Kangas määritettyyn parametriin Kohde tämän kankaan alueelta. Tyyppi TRect, joka kuvaa suorakaiteen muotoisia alueita Lähde Ja Kohde, kuvattu jo kohdassa 3.2 .

Esimerkiksi operaattori

CopyRect(MyRect2, Bitmap. Canvas, MyRect1);

kopiot alueen lomakkeen ääriviivoille MyRect2 kuva alueelta OmaRect1 komponenttikangas Bittikartta.

Kopiointimenetelmä CopyRect suoritetaan ominaisuuden määrittämässä tilassa CopyMode. Oletuksena tällä ominaisuudella on arvo cmSrcCopy, mikä tarkoittaa yksinkertaisesti alueen aiemmin sisältämän kuvan korvaamista Kohde, kopioituun kuvaan. Muut mahdolliset arvot CopyMode voit yhdistää kuvia, mutta niiden tarkastelu ei kuulu tämän kirjan soveltamisalaan.

Rajoitamme näihin perustietoihin graafisten tietojen näyttämisestä kankaalle. Kohdassa 3.2 annettiin tietoa tekstin tulostuksesta ääriviivaan. Yleensä kangas on monimutkainen objekti, jolla on paljon enemmän ominaisuuksia ja menetelmiä. Mutta tämä vaatii laajempaa keskustelua tämän kirjan soveltamisalan ulkopuolelle. Seuraava All About Delphi -sarjan kirja käsittelee näitä kysymyksiä yksityiskohtaisemmin.

Ikkunakomponentti, jolla on ominaisuus Kangas- kangas.

Kuva- ja PaintBox-komponentit

Komponentit Kuva Ja Maali laatikko edustaa rajoitettua pintaa kankaalla, jolle voidaan kirjoittaa kuvia, kuten kohdassa 4.2 on kuvattu . Tässä tapauksessa komponentti Maali laatikko Tarkkaan ottaen ei tarjoa mitään uutta verrattuna lomakkeen piirtämiseen kankaalle. piirtäminen Maali laatikko muodon sijasta sillä ei ole etuja, paitsi ehkä jonkinlainen helpotus yhden tai useamman piirustuksen järjestelyssä ikkuna-alueella.

Mutta näiden ominaisuuksien lisäksi komponentti Kuva On ominaisuuksia, joiden kanssa voit työskennellä erilaisia ​​tyyppejä graafiset tiedostot Tukee kolmenlaisia ​​tiedostoja - bittimatriiseja, kuvakkeita ja metatiedostoja. Kaikki kolme tiedostotyyppiä tallentavat kuvia; ero on vain tavassa, jolla ne on tallennettu tiedostoihin, ja tavoissa, joilla niihin pääsee käsiksi. Bittimatriisi (tiedosto tunnisteella . bmp) näyttää jokaisen kuvan pikselin värin. Tässä tapauksessa tiedot tallennetaan siten, että mikä tahansa tietokone voi näyttää kuvan, jonka resoluutio ja värimäärä vastaavat sen konfiguraatiota.

Piktogrammit (tiedostot, joiden tunniste on . ico) ovat pieniä bittimatriiseja. Niitä käytetään yleisesti edustamaan sovelluskuvakkeita, pikapainikkeissa, valikon kohteissa, sisään erilaisia ​​listoja. Kuvien tallennustapa kuvakkeisiin on samanlainen kuin tiedon tallentaminen bittimatriiseihin, mutta niissä on myös eroja. Erityisesti kuvaketta ei voi skaalata, vaan se pysyy samana kuin se luotiin.

Metatiedostot eivät tallenna kuvan muodostavaa bittisarjaa, vaan tietoa siitä, miten kuva on luotu. Ne tallentavat piirustuskomentojen sarjoja, jotka voidaan toistaa, kun kuvaa luodaan uudelleen. Tämä tekee tällaisista tiedostoista yleensä kompaktimpia kuin bittimatriiseja.

Komponentti Kuva mahdollistaa kaikkien määritettyjen tyyppisten grafiikkatiedostojen sisältämien tietojen näyttämisen. Tämä saavutetaan sen ominaisuudella Kuva- kirjoita objekti Tkuva.

Kuva 4.3 Kuvaeditori-ikkuna


Tutustuaksesi tähän ominaisuuteen avaa uusi sovellus ja vedä komponentti lomakkeeseen Kuva. Venytä sitä tai aseta sen ominaisuus Kohdistaa yhtä suuri alClient niin, että se kattaa koko lomakkeen asiakasalueen. Napsauta ominaisuuden vieressä olevaa painiketta, jossa on ellipsi Kuva Object Inspector -ikkunassa tai yksinkertaisesti kaksoisnapsauta Kuva. Kuvaeditori-ikkuna avautuu edessäsi (kuva 4.3), josta voit ladata kiinteistöön Kuva jokin grafiikkatiedosto (Lataa-painike), ja myös tallenna avaa tiedosto uudella nimellä tai uudessa hakemistossa. Napsauta Lataa ladataksesi grafiikkatiedoston. Näet ikkunan grafiikkatiedoston avaamiseksi, joka näkyy kuvassa 4.4 Kun siirrät osoitinta grafiikkatiedostojen luettelossa, niiden sisältämät kuvat näkyvät oikeassa ikkunassa ja niiden yläpuolella on kuvan kokoa kuvaavia numeroita . Voit valita minkä tahansa tyyppisen grafiikkatiedoston. Muistutetaan, että Delphin mukana toimitetut grafiikkatiedostot löytyvät Kuvat-hakemistosta. Delphi 5:ssä ja 4:ssä se sijaitsee yleensä hakemistossa. \program files\Common Files\Borland Shared. Delphi 3:ssa se sijaitsee hakemistossa. \program files\Borland\Delphi 3 ja Delphi 1 -hakemistossa Delphi 16. Kun tiedosto on ladattu, napsauta OK Picture Editor -ikkunassa ja komponentissasi Kuva Valitsemasi kuva tulee näkyviin. Voit käynnistää sovelluksesi ja ihailla sitä. Näet kuitenkin kuvan jo käynnistämättä sovellusta.

Kun latasit kuvan tiedostosta komponenttiin suunnitteluprosessin aikana Kuva, se ei vain näytä sitä, vaan myös tallentaa sen sovellukseen. Tämä antaa sinulle mahdollisuuden toimittaa sovelluksesi ilman erillistä grafiikkatiedostoa. Kuitenkin, kuten näemme myöhemmin, sisään Kuva Voit myös ladata ulkoisia grafiikkatiedostoja sovelluksen ollessa käynnissä.

Palataan vielä komponenttien ominaisuuksien tarkasteluun Kuva.

Jos asetat ominaisuuden Automaattinen koonmääritys V totta, sitten komponentin koko Kuva mukautuu automaattisesti siihen sijoitetun kuvan koon mukaan. Jos omaisuutta Automaattinen koonmääritys asennettu sisään väärä, silloin kuva ei välttämättä sovi komponenttiin tai päinvastoin komponentin pinta-ala voi olla paljon suurempi kuin kuvan ala.

Toinen omaisuus - Venyttää voit säätää komponentin sijaan kuvan koon mukaan kuvaa komponentin koon mukaan. Asentaa Automaattinen koonmääritys V väärä, venyttää tai kutista komponentin kokoa Kuva ja asenna Venyttää V totta. Näet, että piirustus vie koko komponentin alueen, mutta koska se ei todennäköisesti määritä mitat realistisesti Kuva täsmälleen verrannollinen kuvan kokoon, kuva vääristyy. Asentaa Venyttää V totta saattaa olla järkevä vain joillekin kuvioille, mutta ei kuville. Omaisuus Venyttää ei vaikuta kuvakekuviin, joiden kokoa ei voi muuttaa.

Kiinteistö - Keskusta, asetettu totta, keskittää kuvan alueelle Kuva, jos komponentin koko on suurempi kuin kuvan koko.

Tarkastellaanpa vielä yhtä omaisuutta - Läpinäkyvä(avoimuus). Jos Läpinäkyvä on yhtä suuri totta, sitten kuva sisään Kuva tulee läpinäkyväksi. Tätä voidaan käyttää kuvien asettamiseen päällekkäin. Aseta toinen komponentti lomakkeelle Kuva ja lataa siihen toinen kuva. Yritä vain ottaa vähän täytetty, ääriviivakuva. Voit esimerkiksi ottaa kuvan tavallisesti painikkeisiin sijoitettujen joukosta, esimerkiksi nuoli (file.\program files\common files\borland shared\images\buttons\arrow1l. bmp). Siirrä omasi Kuva niin, että ne menevät päällekkäin, ja ylimmässä komponenttisarjassa Läpinäkyvä yhtä suuri totta. Näet, että ylempi kuva ei enää peitä alinta. Yksi tämän ominaisuuden mahdollisista käyttötavoista on peittää kuvan päälle bittimatriisin muodossa tehtyjä kirjoituksia. Nämä merkinnät voidaan tehdä Delphiin sisäänrakennetulla Image Editor -ohjelmalla.

Huomaathan, että kiinteistö Läpinäkyvä vaikuttaa vain bittimatriiseihin. Tässä tapauksessa bitimatriisin vasemman alakulman pikselin väri tehdään oletusarvoisesti läpinäkyväksi (eli korvataan sen alapuolella olevan kuvan värillä).

Käsittelimme kuvan lataamista tiedostosta suunnitteluprosessin aikana. Mutta omaisuus Kuva Sen avulla on myös helppo järjestää vaihto minkä tahansa tyyppisten grafiikkatiedostojen kanssa sovelluksen suorittamisen aikana. Selvittääksemme tällaisen vaihdon tekniikan, meidän on ensin tarkasteltava tarkemmin omaisuutta Kuva.

Tämä ominaisuus on objekti, jolla puolestaan ​​on aliominaisuuksia, jotka osoittavat tallennettuun graafiseen objektiin. Jos sisään Kuva bittimatriisi tallennetaan, ja sen osoittaa ominaisuus Kuva. Bittikartta. Jos kuvake on tallennettu, ominaisuus osoittaa siihen Kuva. Kuvake. Ominaisuus ilmaisee tallennetun metatiedoston Kuva. Metatiedosto. Lopuksi ominaisuus osoittaa minkä tahansa tyyppisen graafisen objektin Kuva. Graafinen.

Esine Kuva ja sen ominaisuudet Bittikartta, Kuvake, Metatiedosto Ja Graafinen on tiedostojen luku- ja kirjoitusmenetelmiä LoadFromFile Ja SaveToFile:

menettelyä LoadFromFile( konst Tiedoston nimi: merkkijono);

menettelyä SaveToFile( konst Tiedoston nimi: merkkijono);

Kiinteistöille Kuva. Bittikartta, Kuva. Kuvake Ja Kuva. Metatiedosto Tiedostomuodon tulee vastata objektiluokkaa: bittimatriisi, ikoni, metatiedosto. Kun luet tiedostoa omaisuuteen Kuva. Graafinen tiedoston on oltava metatiedostomuodossa. Ja itse esineelle Kuva Luku- ja kirjoitustavat mukautuvat automaattisesti tiedostotyypin mukaan. Selitetään tämä esimerkillä.

Rakennetaan sovellus, joka on samanlainen kuin kohdassa 4.2 käsitelty esimerkki grafiikkatiedostojen katselusta. Monimuotoisuuden vuoksi voit ohjata sitä jollain muulla kuin painikkeella Painike ja valikko. Aseta komponentti lomakkeelle Kuva. Venytä sitä tai aseta sen ominaisuus Kohdistaa yhtä suuri alClient niin, että se kattaa koko lomakkeen asiakasalueen. Vedä grafiikkatiedoston avausikkunakomponentti lomakkeeseen OpenPictureDialog(katso kohta 8.2 ). Aseta lomakkeelle myös päävalikon komponentti Päävalikko(katso kohta 6.1 ) ja aseta siihen yksi osio - Tiedosto. Kirjoita lausunto tämän osion käsittelijään

(OpenPictureDialog1.Execute) sitten. Kuva. LoadFromFile(.Tiedostonnimi);

Tämä operaattori kutsuu valintaikkunan grafiikkatiedoston avaamiseksi (katso kuva 4.4) ja lataa sen komponenttiin Kuva1 kuvan käyttäjän valitsemasta tiedostosta (katso kuva 4.5). Lisäksi tiedosto voi olla minkä tyyppinen tahansa: bittimatriisi, ikoni tai metatiedosto.

Kuva 4.5 Kuva komponentissa Kuva bittimatriisi (a) ja piktogrammi (6)



Tässä sovelluksessa menetelmä LoadFromFile sovellettu Kuva1. Kuva. Jos vain bittimatriisitiedostoja avataan, tiedostojen latausoperaattori voidaan korvata

Kuva. Bittikartta LoadFromFile(.Tiedostonnimi);

Piktogrammeissa voidaan käyttää operaattoria. Kuva. Kuvake. LoadFromFile(.Tiedostonnimi);

ja metatiedostoille - operaattori. Kuva. Metatiedosto. LoadFromFile(.Tiedostonnimi);

tai. Kuva. Graafinen. LoadFromFile(.Tiedostonnimi);

Mutta kaikissa näissä tapauksissa, jos tiedostomuoto ei vastaa suunniteltua muotoa, tapahtuu virhe. Menetelmä toimii samalla tavalla SaveToFile sillä erolla, joka koski Kuva tai siihen Kuva. Graafinen se tallentaa minkä tahansa muotoisen kuvan tiedostoon. Jos esimerkiksi laajennat hakemustasi valintaikkunalla SavePictureDialog(katso kohta 8.2 ), siirry valikon Tallenna nimellä -osioon ja aseta operaattori sen käsittelijään

SavePictureDialog1. Suorittaa sitten. Kuva. SaveToFile(SavePictureDialog1. FileName);

sitten käyttäjä voi tallentaa kuvan missä tahansa muodossa tiedostoon uudella nimellä. Vain tässä tapauksessa, jotta vältytään sekaannuksista tulevaisuudessa, tallennetun tiedoston laajennuksen on silti vastattava tallennetun kuvan muotoa.

Ohjelma toimii täysin identtisesti minkä tahansa muotoisten kuvien kanssa, jos korvaat tallennusoperaattorin

Kuva. Graafinen. SaveToFile(.Tiedostonnimi);

omaisuutta käyttämällä Kuva. Graafinen. Ja jos tiedät komponenttiin tallennetun muodon Kuva kuvia, voit käyttää menetelmää SaveToFile kiinteistöihin Kuva. Bittikartta, Kuva. Kuvake Ja Kuva. Metatiedosto.

Kaikille tarkastetuille kohteille Kuva, Kuva. Bittikartta, Kuva. Kuvake Ja Kuva. Metatiedosto menetelmät kohdearvojen määrittämiseksi on määritelty:

Assign(Lähde: TPersistent);

Kuitenkin varten BitMap, Kuvake Ja Metatiedosto Voit määrittää vain homogeenisten kohteiden arvoja: vastaavasti bittimatriiseja, kuvakkeita, metatiedostoja. Poikkeus tehdään, kun yritetään määrittää arvoja heterogeenisille objekteille EConvertError. Esine Kuva- universaali, sille voidaan määrittää minkä tahansa muun kolmen luokan objektien arvot. Ja merkitys Kuva voidaan määrittää vain objektille, jonka tyyppi vastaa siihen tallennetun objektin tyyppiä.

Menetelmä Määritä voidaan käyttää myös kuvien vaihtamiseen leikepöydän puskurin kanssa. Esimerkiksi operaattori

Assign(Kuva1.Kuva);

tallentaa leikepöydälle tallennetun kuvan leikepöydälle Kuva1. Samanlainen operaattori

Graafinen delphi-kuvasovellus

Kuva1. Kuva. Määritä (leikepöytä);

lukee sisään Kuva1 kuva leikepöydälle. Lisäksi se voi olla mikä tahansa kuva ja jopa teksti.

Sinun tarvitsee vain muistaa, kun työskentelet leikepöydän kanssa liittääksesi operaattoriin käyttää moduulisi linkki moduuliin Clipbrd. Delphi ei lisää tätä linkkiä automaattisesti.

Palataan komponenttien ominaisuuksiin Kuva, voimme huomata yhden testisovelluksemme haittapuolen, joka näkyy kuvassa 4.5 Ladattaessa erilaisia ​​kuvia, sovellusikkunan koko voi olla joko liian pieni, jolloin näet vain osan kuvasta tai liian suurena, ja silloin kuva sijoittuu houkuttelevasti lomakkeen vasempaan yläkulmaan, jolloin jää paljon tyhjää tilaa. Tämä epäkohta voidaan poistaa käyttämällä ominaisuuksia Korkeus(korkeus) ja Leveys(leveys) komponentti Kuva. Omaisuuden kanssa Automaattinen koonmääritys asennettu sisään totta mitat Kuva asetetaan automaattisesti samaan kokoon kuin ladattu kuva. Ja näiden mittojen avulla voidaan muuttaa lomakkeen kokoa vastaavasti. Esimerkiksi aikaisempi koodi kuvan lataamiseksi tiedostosta voidaan korvata seuraavalla:

OpenPictureDialog1. Suorittaa sitten

alkaa. Kuva. LoadFromFile(.Tiedostonnimi); ClientHeight: = Kuva1. Korkeus +10;. Yläosa:=Lomake1. ClientRect. Yläosa

+ (Form1. ClientHeight - Image1. Height) div 2;. ClientWidth:=Kuva1. Leveys+10;. Vasen: = Lomake1. ClientRect. Vasen

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

loppu;

Tämä koodi asettaa lomakkeen asiakasalueen koon hieman suuremmiksi kuin komponentin koko. Kuva1, jotka puolestaan ​​mukautuvat kuvan kokoon ominaisuuden ansiosta Automaattinen koonmääritys. Tee nämä muutokset sovellukseesi, suorita se ja katso, että lomake mukautuu automaattisesti ladatun kuvan koon mukaan.

Muotokomponentti

Komponentti Muoto voidaan vain ehdollisesti luokitella graafisen tiedon esittämiskeinoksi, koska se yksinkertaisesti edustaa erilaisia ​​geometrisia muotoja asianmukaisesti varjostettuina. Tämän komponentin tärkein ominaisuus on Muoto(lomake), jolla voi olla seuraavat arvot:

Esimerkkejä näistä lomakkeista on esitetty kuvassa 4.7

Kuva 4.7 Esimerkkejä komponenteista Muoto


Toinen komponentin olennainen ominaisuus on Harjata(harjata). Tämä ominaisuus on tyyppinen objekti TBrush, jolla on useita aliominaisuuksia, erityisesti: väri ( Harjata. Väri) ja tyyli ( Harjata. Tyyli) täytä muoto. Täyttö tietyillä arvoilla Tyyli näet kuvasta 4.7 Kolmas komponentin erityisominaisuuksista Muoto - Kynä(kynä), joka määrittää viivatyylin. Tämä omaisuus on kuin omaisuutta Harjata, on jo käsitelty kohdassa 4.2 . Löydät viitetiedot näistä kiinteistöistä luvusta 10*.

Kaavion osa

Katsotaan nyt komponenttia Kartoittaa. Tämän komponentin avulla voit rakentaa erilaisia ​​kaavioita ja kaavioita, jotka näyttävät erittäin vaikuttavilta (kuva 4.8). Komponentti Kartoittaa sillä on monia ominaisuuksia, menetelmiä, tapahtumia, joten jos tarkastelemme niitä kaikkia, joutuisimme omistamaan tälle kokonaisen luvun. Siksi rajoitamme huomiomme vain tärkeimmät ominaisuudet Kartoittaa. Loput löydät Delphin sisäänrakennetusta ohjeesta tai voit vain kokeilla niitä kokeilemalla kaavioita.

Komponentti Kartoittaa on esineiden säiliö Sarja tyyppi TChartSeries- Tietosarja, jolle on ominaista erilaiset näyttötyylit. Jokainen komponentti voi sisältää useita sarjoja. Jos haluat näyttää kaavion, jokainen sarja vastaa yhtä käyrää kaaviossa. Jos haluat näyttää kaavioita, joidenkin kaaviotyyppien kohdalla voit asettaa päällekkäin useita eri sarjoja, toisille (kuten ympyräkaavioille) se näyttää todennäköisesti rumalta. Voit kuitenkin myös tässä tapauksessa asettaa yhden komponentin Kartoittaa useita sarjoja samaa dataa eri kaaviotyypeillä. Aktivoimalla yksi niistä joka kerta, voit tarjota käyttäjälle valinnanvaraa, minkä tyyppistä kaaviota näyttää häntä kiinnostavat tiedot.

Aseta yksi tai kaksi (jos haluat toistaa kuvan 4.8) komponentteja Kartoittaa lomakkeella ja katso Object Inspectorissa avautuvia ominaisuuksia. Tässä on joitain selityksiä joistakin niistä.

Määrittää, voiko käyttäjä vierittää havaittua kaavion osaa suorituksen aikana napsauttamalla hiiren oikeaa painiketta. Mahdolliset arvot: pmNone - vieritys kielletty, pmVaaka, pmPysty tai pmMolemmat - vieritys on sallittu, vastaavasti, vain vaakasuunnassa, vain pystysuunnassa tai molempiin suuntiin.

Mahdollistaa käyttäjän muuttaa kuvan mittakaavaa suorituksen aikana leikkaamalla kaavion tai kaavion katkelmia hiiren kursorilla (Kuva 4.8 b alla näyttää kaavion fragmentin katselun hetken, esitetty kokonaisuudessaan kuvassa 4.8 a).

Määrittää kaavion otsikon.

Määrittää kaavion tunnisteen. Ei mitään oletuksena. Allekirjoitusteksti määräytyy Teksti-aliominaisuuden perusteella.

Määrittää reunuksen kaavion ympärille.

Kaavion selitys on luettelo symboleista.

MarginLeft, MarginRight, MarginTop, MarginBottom

Vasen, oikea, ylä- ja alamarginaaliarvot.

BottomAxis, LeftAxis, RightAxis

Nämä ominaisuudet määrittävät alemman, vasemman ja oikean akselin ominaisuudet, vastaavasti. Näiden ominaisuuksien asettaminen on järkevää kaavioille ja tietyntyyppisille kaavioille.

LeftWall, BottomWall, BackWall

Nämä ominaisuudet määrittävät kaavion kolmiulotteisen näyttöalueen vasemman, alareunan ja takareunan vastaavasti (katso kuva 4.8 a, alakaavio).

Luettelo komponentissa näkyvistä tietosarjoista.

Ottaa käyttöön tai poistaa käytöstä 3D-kartan näyttämisen.

Kolmiulotteisen näytön ominaisuudet.

Kolmiulotteinen asteikko (kuvassa 4.8 tämä on kaavion paksuus ja kuvaajaliuskojen leveys).


Monien Object Inspectorissa lueteltujen ominaisuuksien vieressä on ellipseillä varustettuja painikkeita, joiden avulla voit kutsua kaavioeditorin yhden tai toisen sivun - monisivuisen ikkunan, jonka avulla voit määrittää kaikki kaavioiden ominaisuudet. Kaavioeditori voidaan kutsua myös kaksoisnapsauttamalla komponenttia Kartoittaa tai napsauta sitä hiiren kakkospainikkeella ja valitse Muokkaa kaaviota -komento ponnahdusvalikosta.

Jos haluat yrittää toistaa kuvassa 4.8 näkyvän sovelluksen, kaksoisnapsauta yläkomponenttia Kartoittaa. Sinut viedään Kaavioeditori-ikkunaan (Kuva 4.9) Kaaviosivulle, jossa on useita välilehtiä. Ensinnäkin olet kiinnostunut sen Sarja-välilehdestä. Napsauta Lisää-painiketta - lisää sarja. Sinut ohjataan ikkunaan (Kuva 4.10), jossa voit valita kaavion tai kaavion tyypin. Valitse tässä tapauksessa ympyräkaavio. Otsikot-välilehdellä voit asettaa kaavion otsikon, Selite-välilehdellä voit asettaa parametreja kaavion selitteen (symbolien luettelon) näyttämiseksi tai poistaa sen näytöltä kokonaan, Paneeli-välilehti määrittää paneelin ulkoasun jossa kaavio näytetään, 3D-välilehti antaa sinulle mahdollisuuden muuttaa kaavion ulkoasua: kallistus, siirto, paksuus jne.

Kun työskentelet kaavioeditorissa ja olet valinnut kaaviotyypin, komponentit Kartoittaa Lomakkeesi näyttää ulkoasunsa ja siihen syötetyt ehdolliset tiedot (katso kuva 4.11).

Kuva 4.10 Kaavion tyypin valitseminen kaavioeditorissa


Siksi voit heti nähdä tuloksen, kun käytät erilaisia ​​​​vaihtoehtoja sovellukseesi, mikä on erittäin kätevää.

Sarja-sivulla, jolla on myös useita välilehtiä, voit valita sarjalle lisää näyttövaihtoehtoja. Erityisesti Muoto-välilehden ympyräkaaviossa on hyödyllistä ottaa käyttöön Circled Pie -vaihtoehto, joka varmistaa, että komponentin missä tahansa koossa Kartoittaa näyttää kaavion ympyrän muodossa. Merkit-välilehdellä Tyyli-ryhmän painikkeet määrittävät, mitä kaavion yksittäisiin segmentteihin liittyviin tarroihin kirjoitetaan: Arvo - arvo, Prosentti - prosenttiosuudet, Tunniste - tietojen nimet jne. Kuvan 4.8 esimerkissä Prosentti-painike on käytössä ja Yleiset-välilehdellä prosenttimalli on asetettu varmistamaan, että vain kokonaislukuarvot näytetään.

Voit halutessasi lisätä tähän komponenttiin Kartoittaa toinen identtinen sarja napsauttamalla Kloonaa-painiketta Kaavio-sivun Sarja-välilehdellä ja tämän uuden sarjan kohdalla napsauttamalla Muuta-painiketta ja valitsemalla eri kaaviotyypin, esimerkiksi palkki. Tietysti kaksi erilaisia ​​tyyppejä kaaviot yhdessä kuvassa näyttävät huonoilta. Voit kuitenkin sammuttaa tämän uuden sarjan ilmaisimen Sarja-välilehdellä ja antaa sitten käyttäjän valita yhden tai toisen kaavion näyttötyypin (näytetään alla, kuinka tämä tehdään).

Poistu kaavioeditorista ja valitse sovelluksesi alin komponentti Kartoittaa ja toista sen ominaisuudet käyttämällä kaavioeditoria. Tässä tapauksessa sinun on määritettävä kaksi sarjaa, jos haluat näyttää kaksi käyrää kaaviossa, ja valittava Viivakaaviotyyppi. Koska puhumme kaavioista, voit käyttää Axis- ja Walls-välilehtiä määrittääksesi kaavion akseleiden ja kolmiulotteisten reunojen koordinaattiominaisuudet.

Tämä viimeistelee sovelluksen ulkoasun suunnittelun. Jäljelle jää vain koodin kirjoittaminen, joka määrittää näytettävät tiedot. Testisovellukselle asetetaan vain vakiodataa ympyräkaavioon ja sini- ja kosinifunktiot kaavioihin.

Näytettävien arvojen asettamiseksi sinun on käytettävä sarjamenetelmiä Sarja. Keskitytään vain kolmeen päämenetelmään.

Menetelmä Asia selvä tyhjentää sarjan aiemmin syötettyjä tietoja.

Menetelmä Lisätä:

(Vakioarvo: Double; Const ALabel: String;: TColor)

voit lisätä uuden pisteen kaavioon. Parametri Arvo vastaa lisäarvoa, parametria ALabel- nimi, joka näytetään kaaviossa ja selityksessä, AColor- väri. Parametri ALabel- valinnainen, se voidaan asettaa tyhjäksi: "".

Menetelmä LisääXY:(Vakio AXArvo, AYArvo: Kaksoisarvo; ALabel: String; AColor: TColor)

voit lisätä uuden pisteen funktiokaavioon. Vaihtoehdot AXValue Ja AYValue vastaavat argumenttia ja funktiota. Vaihtoehdot ALabel Ja AColor sama kuin menetelmässä Lisätä.

Näin ollen menetelmä tietojen lataamiseksi esimerkissämme voisi näyttää tältä:

155;=251;=203;=404;

var: sana;

alkaa Sarja 1 tehdä

alkaa;(A1, "Workshop 1", clYellow);(A2, "Workshop 2", clBlue);(A3, "Workshop 3", clRed);(A4, "Workshop 4", clPurple);

loppu;. Asia selvä;. Asia selvä;

varten i: =0 to 100 tehdä

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

Jos olet esimerkiksi antanut kaaviossa näytettävät tiedot, kaksi sarjaa Sarja 1 Ja Sarja 4 erilaisia ​​- Piirakka Ja Baari, sitten voit ottaa käyttöön menettelyn, joka muuttaa kaavion tyyppiä käyttäjän pyynnöstä. Tämä menettely voidaan sisällyttää tapahtumaan Klikkaamalla jokin painike, valikkokomento tai esimerkiksi yksinkertaisesti komponentin napsautuksen käsittely Kartoittaa. Tietojen lataamiseen Sarja 4 ja tehdä tästä kaaviosta näkymätön heti ensimmäisellä hetkellä, voit lisätä operaattorit aiemmin annetun toimenpiteen loppuun

Määritä (Series1); Aktiivinen: =false;

Ensimmäinen näistä operaattoreista kirjoittaa uudelleen syötetyt tiedot Sarja 1, sarjassa Sarja 4. Ja toinen operaattori tekee sarjasta näkymätön Sarja 4. Kaavion tyypin muuttaminen suoritetaan menettelyllä

Aktiivinen: = ei Sarja 1. aktiivinen;. Aktiivinen: = ei Sarja 4. aktiivinen;

Kuvassa 4.8 b näet tuloksen, kun käyttäjä siirtyy toiseen kaavionäkymään.

"Graafisten tietojen näyttäminen Delphissä"
Aihesuunnitelma:
1. Graafiset tulostustavat
tiedot Delphissä.
2. Näytä kuvat.
3. Geometrinen näyttö
lukuja.

1. Menetelmät graafisen tiedon näyttämiseksi.
Delphissä on useita tapoja
graafisen tiedon tulostus:
Esivalmistetun tulos
kuvat (kuvan komponentit,
Muoto);
Kaavioiden ja kaavioiden rakentaminen
(kaaviokomponentti jne.);
Kuvantaminen
ohjelmallisesti (objekti
Kangas).

2. Näytä kuvat.
Kuvien näyttäminen käyttämällä
Tarkastelimme Image-komponenttia
yksi edellisistä aiheista.
Tässä tarkastellaan esimerkkiä
yksinkertaisen animaation toteuttaminen
säännöllisellä muutoksella
näytettävä kuva sisään
Kuvan komponentit.
Siirry esimerkkiin.


Alkueläinten esittely
geometriset muodot lomakkeella
tarjoaa Shape-komponentin.

3. Geometristen muotojen näyttäminen.
Shape-komponentin perusominaisuudet:
Harjata
Kynä
Muoto
Väri (.Color) ja tyyli (.Style) varten
täyttää hahmon.
Väri (.Color), tyyli (.Style), leveys
(.Width) ja viivojen tulostustapa (.Mode).
lukuja.
Geometrisen hahmon tyyppi.

3. Geometristen muotojen näyttäminen.
Useista Shape-komponenteista
Voit luoda yksinkertaisia ​​piirustuksia.
Ohjelmallisesti vaihtava sijainti
(.Vasen, .Top) koko (.Leveys, .Korkeus) ja
Shape-komponenttien väri (Brush.Color).
piirustuksessa se on mahdollista toteuttaa
yksinkertaisen animaation elementtejä.
Harkitse esimerkkiä.

4. Kaavioiden ja kaavioiden rakentaminen.
Kaaviot on tarkoitettu
enemmän visuaalista esitystä
numeeristen tietojen joukot, niiden
visuaalinen näyttö ja analyysi.
Esimerkki.
Kaavioiden luominen Delphissä
komponentteja on useita
yksi niistä on Kaaviokomponentti (osio
TeeChart Std).

4. Kaavioiden ja kaavioiden rakentaminen.
Näkymä kaaviokomponentista sen jälkeen
Lomakkeen asetukset:

4. Kaavioiden ja kaavioiden rakentaminen.
Object Inspectorin lisäksi pääsy
Kaaviokomponentin ominaisuudet voivat olla
päästä avaamalla erikoisikkuna
valintaikkuna (komponentin oikea painike \
Muokkaa kaaviota...)
Lisätä
datasarja
Vaihda tyyppiä
kaavioita

4. Kaavioiden ja kaavioiden rakentaminen.
Kaavion tyypin valitseminen:

4. Kaavioiden ja kaavioiden rakentaminen.
Koordinaattiakseleiden ominaisuuksien asettaminen
(akseli):

4. Kaavioiden ja kaavioiden rakentaminen.
Näyttötiedot ovat yleensä
siirretty kaavioon ohjelmallisesti,
esimerkki:
Series1.Clear; (selkeä sarja)
i:=1 - N do
Series1.addxy(i, A[i], '', clVihreä);
Arvo:
X-akseli
Arvo:
Y-akseli
Allekirjoitus
X-akseli
Tietojen väri
kaaviossa
Harkitse esimerkkiä rakentamisesta
funktion y = Sin(x) kuvaaja

Edelleen:
Laboratoriotyöt № 13.1.
"Näyttää kuvia ja geometrisia
hahmot, niiden animaatiot."
Harjoittele:
1) Kehitä sovellus toteutettavaksi
yksinkertaisin animaatio jaksoittain
muuttaa näytettävän kuvan
Kuvan komponentit. (Kuvien määrä ei ole
alle kolme, valitse kuvat
omillaan).

Harjoittele:
2) Keksi ja piirrä kuva siitä
Muotoile komponentteja. Ohjelmallisesti
muuttaa sijaintia, kokoa tai väriä
Muotoile komponentteja piirustuksessa
toteuttaa yksinkertaisimman elementit
animaatio.

Edelleen:
Laboratoriotyö nro 13.2.
"Rakenna kaavioita ja kaavioita."
Harjoittele:
1) Muokkaa hakemusta alkaen
laboratoriotyö nro 9 (Näyttö
tiedot taulukossa). Lisää mahdollisuus
näyttää joitakin tietoja taulukosta
histogrammissa tai ympyräkaaviossa.
2) Muodosta kaavio annetusta funktiosta.


Yläosa