Sastāvdaļas grafiskās informācijas attēlošanai. Prezentācija par tēmu "Grafiskās informācijas attēlošana Delfos". Īsa informācija no teorijas

Grafiskās informācijas attēlošanai Delphi bibliotēka nodrošina komponentus, kuru saraksts ir dots tabulā. 6.

6. tabula

Sastāvdaļas grafiskās informācijas attēlošanai

Komponents Lappuse Apraksts
Attēls Papildu Izmanto grafikas attēlošanai
PaintBox (logs zīmēšanai) Sistēma Izmanto, lai veidlapā izveidotu kādu laukumu, kurā var zīmēt
DrawGrid (zīmējumu tabula) Papildu Izmanto, lai rindās un kolonnās parādītu datus, kas nav teksta dati
Diagramma (diagrammas un diagrammas) Papildu Komponents pieder TeeChart komponentu saimei, ko izmanto, lai izveidotu diagrammas un grafikus
Chartfx (diagrammas un diagrammas) ActiveX Diagrammu un grafiku redaktors
FIBook (Excel lapas) ActiveX Skaitliskās informācijas ievades un apstrādes komponents
VtChart (diagrammas) ActiveX Diagrammu veidošanas logs

Turklāt jūs varat parādīt un ievadīt grafisku informāciju jebkura loga komponenta virsmā, kam ir īpašums Audekls- audekls.

Attēlu tabulas — DrawGrid un StringGrid komponenti

Komponents DrawGrid izmanto, lai izveidotu tabulu lietojumprogrammā, kurā var būt grafiski attēli. Šis komponents ir līdzīgs komponentam StringGrid jo pēdējais ir atvasināts no DrawGrid. Tāpēc iekšā DrawGrid ir visas komponenta īpašības, metodes, notikumi StringGrid izņemot ar tekstu saistītos, t.i. izņemot īpašības Šūnas, Cols, rindas, objekti. No šī viedokļa komponents StringGrid ir ievērojami lielākas iespējas nekā DrawGrid jo tas var saglabāt gan attēlus, gan tekstus šūnās. Un, ja vēlaties ievadīt tekstu dažās šūnās DrawGrid tad jums būs jāizmanto metodes teksta attēlošanai kontūrā, kas nav īpaši ērti.

Sastāvdaļas DrawGrid un StringGrid ir kontūra Audekls, kurā varat ievietot attēlus.

Ir metode Cell-Rect, kas atgriež konkrētai šūnai piešķirto kanvas laukumu. Šī metode ir definēta kā

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

Kur Acol un Arow- kolonnu un rindu indeksi, sākot no 0, kuru krustpunktā atrodas šūna. Šīs funkcijas atgrieztais laukums ir audekla apgabals, kurā var uzzīmēt vēlamo attēlu. Piemēram, operators

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

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

kopiju metode CopyRect uz tabulas šūnu (1,1). DrawGridl attēls no komponenta Bitkarte.Šī šūna tabulā ir otrā no kreisās puses un otrā no augšas, jo indeksi sākas ar 0. Lūdzu, ņemiet vērā, ka, ja šūna ir mazāka par kopētā attēla izmēru, tiks parādīta tikai attēla augšējā kreisā daļa. šūna.

Attēls uz komponenta audekla DrawGrid un StringGrid, tāpat kā jebkura komponenta audeklā, tas tiek dzēsts, ja lietojumprogrammas logs pārklājas ar citiem logiem vai, piemēram, ja lietojumprogramma tiek samazināta līdz minimumam.

Ērts veids, kā ievadīt attēlus šūnās DrawGrid ir izmantot notikumu apstrādātāju OnDrawCell.Šie notikumi notiek katrai tabulas šūnai tās pārzīmēšanas laikā. Apdarinātāja galvene izskatās šādi:

procedūra TForml.DrawGridlDrawCell(Sūtītājs: TObject;

Acol, ARow: vesels skaitlis; Rect: TRect; Stāvoklis: TGridDrawState)

Parametrs Valsts norāda šūnas stāvokli. Tas ir komplekts, kurā var būt šādi elementi: gd Selected- atlasītā šūna, gdFocused- šūna, kas ir fokusā, gdFiksēts- šūna fiksētā tabulas apgabalā. Parametrs Valsts var izmantot, lai dažādos stāvokļos parādītu šūnas atšķirīgi.

Formas sastāvdaļa

Formas sastāvdaļa var tikai nosacīti klasificēt kā grafiskās informācijas attēlošanas līdzekli, jo tas vienkārši attēlo dažādas ģeometriskas formas, atbilstoši iekrāsotas. Šīs sastāvdaļas galvenā īpašība ir Forma(forma), kam var būt šādas vērtības:

StRectangle – taisnstūris;

StSquare – kvadrāts;

StRoundRect - taisnstūris ar noapaļotiem stūriem;

StRouhdSquare - kvadrāts ar noapaļotiem stūriem;

StEllipse – elipse;

StCircle - aplis.

Vēl viena būtiska komponenta īpašība ir Ota(ota). Šis īpašums ir tipa objekts TBrush, kam ir vairākas apakšīpašības, jo īpaši krāsa (Ota. Krāsa) un stilu (Ota. Stils) aizpildot figūru. Attēlā varat redzēt dažu stila vērtību aizpildījumu. 3.2. Trešā komponenta specifiskā īpašība Forma- Pildspalva(pildspalva), kas nosaka līnijas stilu.

Diagrammas sastāvdaļa

Tagad apskatīsim komponentu Diagramma.Šis komponents ļauj izveidot dažādas diagrammas un grafikus, kas izskatās ļoti iespaidīgi. Komponents Diagramma ir daudz īpašību, metožu, notikumu, tāpēc, ja mēs tos visus apsvērtu, mums tam būtu jāvelta vesela nodaļa. Tāpēc mēs aprobežosimies, ņemot vērā tikai galvenās īpašības Diagramma. Pārējos varat atrast Delphi iebūvētajā palīdzībā vai vienkārši izmēģināt, eksperimentējot ar diagrammām.

Komponents Diagramma ir priekšmetu konteiners sērija- šķiras mantinieki TChartSeries. Katrs šāds objekts attēlo datu sēriju, ko raksturo noteikts attēlošanas stils: konkrēts grafiks vai diagramma. Katra sastāvdaļa Diagramma var ietvert vairākas epizodes. Ja vēlaties attēlot grafiku, katra sērija atbilst vienai diagrammas līknei. Ja vēlaties attēlot diagrammas, dažiem diagrammu veidiem varat pārklāt vairākas dažādas sērijas vienu virs otras, citiem (piemēram, sektoru diagrammām) tas, iespējams, izskatīsies neglīts. Tomēr pat šajā gadījumā varat iestatīt vienu komponentu Diagramma vairākas vienu un to pašu datu sērijas ar dažādiem diagrammu veidiem. Pēc tam, katru reizi aktivizējot vienu no tiem, varat nodrošināt lietotājam iespēju izvēlēties diagrammas veidu, kurā tiek parādīti viņu interesējošie dati.

Novietojiet vienu vai divus komponentus Diagramma veidlapā un apskatiet rekvizītus, kas tiek atvērti objektu inspektorā. Šeit ir daži paskaidrojumi par dažiem no tiem.

AllowPanning – nosaka lietotāja spēju ritināt novēroto grafika daļu izpildes laikā, nospiežot peles labo pogu. Iespējamās vērtības: pmNav - ritināšana ir aizliegta, pmHori/ontal, pm Vertikāli vai pmAbi - atļauta ritināšana attiecīgi tikai horizontālā virzienā, tikai vertikālā virzienā, vai abos virzienos.

AhowZoom - ļauj lietotājam mainīt attēla tālummaiņu izpildes laikā, ar peles kursoru izgriežot diagrammas vai diagrammas fragmentus. Ja fragmenta rāmis ir novilkts pa labi un uz leju, tad šis fragments tiek izstiepts, lai aptvertu visu grafika lauku. Un, ja rāmis ir uzvilkts un pa kreisi, tad tiek atjaunots sākotnējais mērogs.

Nosaukums — nosaka diagrammas nosaukumu.

Pēda — definē parakstu zem diagrammas. Pēc noklusējuma neviena. Paraksta tekstu nosaka apakšīpašums Teksts.

Rāmis — definē rāmi ap diagrammu.

Blakus daudziem no uzskaitītajiem rekvizītiem Objektu inspektorā ir pogas ar elipsēm, kas ļauj izsaukt vienu vai otru diagrammu redaktora lapu - vairāku lapu logu, kas ļauj iestatīt visus diagrammu rekvizītus. Diagrammu redaktoru var izsaukt arī, veicot dubultklikšķi uz komponenta Diagramma vai ar peles labo pogu noklikšķinot uz tā un uznirstošajā izvēlnē atlasot komandu Rediģēt diagrammu.

Veiciet dubultklikšķi uz augšējā komponenta Diagramma. Jūs tiksit novirzīts uz diagrammas redaktora logu diagrammas lapā, kurā ir vairākas cilnes. Pirmkārt, jūs interesēs tajā esošā cilne Sērija. Noklikšķiniet uz pogas Pievienot - pievienojiet sēriju. Jūs tiksit novirzīts uz logu, kurā varēsit izvēlēties diagrammas vai grafika veidu. Šajā gadījumā atlasiet Sektoru diagramma. Izmantojot cilni Virsraksti, varat iestatīt diagrammas nosaukumu, cilne Leģenda ļauj iestatīt parametrus diagrammas leģendas (simbolu saraksta) attēlošanai vai noņemt to vispār no ekrāna, cilne Panelis nosaka paneļa izskatu kurā diagramma tiek rādīta, cilne 3D sniedz iespēju mainīt diagrammas izskatu: slīpumu, nobīdi, biezumu utt.

Kad strādājat diagrammu redaktorā un esat atlasījis diagrammas veidu, komponentus Diagramma Jūsu veidlapa parāda tās izskatu ar tajā ievadītajiem nosacījumiem. Tāpēc jūs uzreiz varat redzēt dažādu opciju piemērošanas rezultātu savai lietojumprogrammai, kas ir ļoti ērti.

Lapa Sērija, kurā ir arī vairākas cilnes, sniedz iespēju sērijai atlasīt papildu displeja opcijas. Jo īpaši sektoru diagrammas cilnē Formatēt ir lietderīgi iespējot opciju Circled Pie, kas nodrošinās, ka diagramma tiek parādīta kā aplis jebkurā diagrammas komponenta izmērā. Cilnē Atzīmes grupas Stils pogas nosaka, kas tiks rakstīts uz etiķetēm, kas saistītas ar atsevišķiem diagrammas segmentiem: Vērtība - vērtība, Procenti - procenti, Iezīme - datu nosaukumi utt.

Ja vēlaties, šim diagrammas komponentam varat pievienot vēl vienu identisku sēriju, diagrammas lapas cilnē Sērija noklikšķinot uz pogas Klonēt un pēc tam jauna sērija Noklikšķiniet uz pogas Mainīt un atlasiet citu diagrammas veidu, piemēram, joslu.

Izejiet no diagrammu redaktora, savā lietojumprogrammā atlasiet apakšējo diagrammas komponentu un atkārtojiet tā rekvizītu iestatīšanu, izmantojot diagrammu redaktoru. Šādā gadījumā jums būs jānorāda divas sērijas, ja vēlaties grafikā parādīt divas līknes, un atlasiet līniju diagrammas veidu. Tāpēc ka mēs runājam par Attiecībā uz grafikiem varat izmantot cilnes Asis un Sienas, lai norādītu diagrammas asu un trīsdimensiju malu koordinātu raksturlielumus.

Tas ir dizainam izskats pieteikšanās beidzas. Atliek tikai uzrakstīt kodu, kas norāda datus, kurus vēlaties parādīt. Testa lietojumprogrammai iestatīsim tikai dažus konstantus datus sektoru diagrammā un dažas funkcijas grafikos.

Lai iestatītu parādītās vērtības, jāizmanto sērijas metodes. Koncentrēsimies tikai uz trim galvenajām metodēm.

Metode Skaidrs notīra iepriekš ievadīto datu sēriju.

Metode Pievienot:

Pievienot(Const AVvalue:Double; Const ALabel:String; AColor:TCcolor) ,

ļauj diagrammai pievienot jaunu punktu. Parametrs Vērtība atbilst pievienotajai vērtībai, parametram ALetiķete- etiķete, kas tiks parādīta diagrammā un leģendā, AKrāsa- krāsa. Parametrs ALetiķete- pēc izvēles, to var iestatīt tukšu: “”. Metode AddXY:

AddXY(Const AXValue, AYValue: Double; Const AEtiķete: Virkne; AColor: TColor)

ļauj pievienot jaunu punktu funkciju grafikam. Iespējas AXValue Un AYValue atbilst argumentam un funkcijai. Iespējas AEtiķete un AKrāsa tāds pats kā metodē Pievienot.

Tādējādi datu ielādes procedūra mūsu piemērā varētu izskatīties šādi:

const Al=155; A2=251; A3=203; A4=404; var i:word; sākt

Sāciet ar sēriju

Add(Al,"Darbnīca l",clDzeltens);

Add(A2,"Seminārs 2",clBlue);

Add(A3,"Seminārs 3",clRed);

Add(A4,"Darbnīca 4",clPurple); beigas;

Series2.Clear; SeriesS.Clear; i:=0 līdz 100 sāciet

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

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

ClRed); ,clBlue);

Operatori Skaidrs ir nepieciešami, ja plānojat atjaunināt datus lietojumprogrammas darbības laikā.

Tas noslēdz mūsu ievadu komponentam Diagramma. Tiesa, mēs esam apsvēruši tikai nelielu daļu no tā iespējām.

Darbs ar grafiku Delfos tas nav tikai līnijas un zīmējumi, bet arī druka teksta dokumenti. Tāpēc iekšā Delfos darbā ar grafiku jums jāpavada nedaudz laika. Strādā ar grafika Delfos ietver piekļuvi audeklam — komponentu īpašumam Canvas. Audekls Delphi tas ir audekls, kas programmētājam ļauj piekļūt katram tā punktam (pikseļiem) un, tāpat kā māksliniekam, parādīt to, kas nepieciešams. Protams, zīmējiet pikseļus pēc pikseļa darbs ar grafiku Delfos nav nepieciešams, Delphi sistēma nodrošina jaudīgu grafikas rīki, atvieglojot programmētāja uzdevumu.

Strādājot ar grafiku Delfos, programmētāja rīcībā ir kontūra (canvas, canvas - property Audekls Delphi komponenti), zīmulis (īpašums Pildspalva), tās sastāvdaļas vai objekta otu (Otas īpašība), uz kuras ir paredzēts krāsot. Pie zīmuļa Pildspalva un otas Ota varat mainīt krāsu (Color property) un stilu (Style property). Piekļuvi fontiem nodrošina kanvas īpašums Fonts. Šie rīki ļauj attēlot gan tekstu, gan diezgan sarežģītus matemātiskā un inženiertehniskā satura grafikus, kā arī rasējumus. Turklāt, darbs ar grafikuļauj izmantot šādus resursus Delfos Windows piemēram, grafikas un video faili.

Protams, ne visiem Delphi komponentiem ir šīs īpašības. Uz cilnes Papildu atrodas specializēta sastāvdaļa TItēls, kas īpaši paredzēts zīmēšanai, bet arī īpašums Audekls ir, piemēram, tādi komponenti kā ListBox, ComboBox, StringGrid, kā arī pati Form, kurā tiek ievietoti mūsu komponenti! Turklāt, lai drukātu dokumentus, Delphi piekļūst objekta, piemēram, printera, rekvizītam Canvas.

Tāda objekta kā Canvas Delphi galvenais īpašums ir Pikseļi veids TKrāsa, tas ir, tas ir divdimensiju punktu (pikseļu) masīvs, ko nosaka to krāsa. Zīmēšana uz audekla notiek brīdī, kad jebkuram audekla punktam tiek piešķirta noteikta krāsa. Katram pikselim var piešķirt jebkuru Windows pieejamo krāsu. Piemēram, izpildot paziņojumu

Image1.Canvas.Pixels:=clRed;

Rezultātā tiks uzzīmēts sarkans punkts ar koordinātām. Jūs varat uzzināt pikseļa krāsu ar apgrieztu piešķiršanu:

Krāsa:=Attēls1.Audekls.Pikseļi;

Tips TKrāsa definēts kā garš vesels skaitlis (LongInt). Tās četri baiti satur informāciju par zilās (B), zaļās (G) un sarkanās (R) krāsu proporcijām. Heksadecimālajā sistēmā tas izskatās šādi: $00BBGGRR. Katras krāsas proporcija var mainīties no 0 līdz 255. Tāpēc, lai parādītu maksimālo sarkano punktu, tas ir jāpiešķir krāsa $000000FF.
Delphi standarta krāsām ir noteikta teksta konstantu kopa. To var redzēt, objektu inspektorā atverot, piemēram, tās pašas formas rekvizītu Color.

Šajā tabulā ir ietverti daži audekla rekvizīti un metodes:

Procedūra TextOut(X, Y: vesels skaitlis; konst Teksts: WideString);
Ražo virknes izvadi Teksts sākot no (X, Y) - teksta augšējā kreisā pikseļa.
Rekvizīts TextWidth( var Teksts: String): Integer;
Satur auklas garumu Teksts pikseļos.
Īpašuma teksta augstums( var Teksts: String): Integer;
Satur līnijas augstumu Teksts pikseļos.
Procedūra MoveTo(X, Y: Integer);
Pārvieto pozīciju uz pikseļu ar adresi (X, Y).
Procedure LineTo(X, Y: Integer);
Novelk taisnu līniju no pašreizējās pozīcijas punkta līdz pikselim ar adresi (X, Y). Adrese (X, Y) kļūst par pašreizējās pozīcijas punktu.
Procedūra FillRect( konst Rect: TRect);
Aizpilda taisnstūri Rekt uz audekla, izmantojot pašreizējo otu. Var izmantot, cita starpā, lai izdzēstu daļu attēla uz audekla.

Uzrakstīsim, izmantojot tikai šīs audekla metodes, lietojumprogrammu attēlam uz komponenta audekla Attēls teksts, kas tiek ievadīts komponentā Piezīme:

Pirmā lieta, ko mēs darīsim, ir inicializēt mainīgos, kad programma sākas. Ir nepieciešams noteikt zīmēšanas laukuma lielumu (tam mēs izveidosim globālo mainīgo Rect tipa TRect) un iestatīt fona krāsu Attēls balts:

procedūru TForm1.FormCreate(Sender: TObject);
sākt
Taisn.Pa kreisi:=0;
Rect.Top:=0;
Rect.Right:=Attēls1.Platums;
Rect.Bottom:=Attēls1.Augstums;
Image1.Canvas.Brush.Color:=clWhite;
beigas;

Pēc tam attēla malās uzzīmējiet rāmi:

procedūru TForm1.lapa;
sākt
ar Attēls1.Audekls darīt
sākt
PārvietotUz(0, 0);
LineTo(Attēls1.Platums-1, 0);
LineTo(Attēls1.Platums-1, Attēls1.Augstums-1);
LineTo(0, Image1.Height-1);
LineTo(0, 0);
beigas;
beigas;

Pamēģināsim, kas noticis. Viss darbojas, bet rāmis vēl nav parādīts. Tāpēc pievienosim procedūru lappuse procedūrā FormCreate. Tagad tas ir skaisti. Tālāk mēs uzrakstīsim vienkāršu procedūru attēla dzēšanai un notīrīšanai. Tas būs jāizsauc pirms jebkura attēla atjaunināšanas, pretējā gadījumā iepriekšējie un nākamie attēli pārklājas.

procedūru TForm1.clearing;
sākt
Image1.Canvas.FillRect(Rect); //Taisnstūris Rekt ir piepildīts ar baltu krāsu un attēls tiek izdzēsts.
beigas;

Tagad ir kārta pašai teksta izvades procedūrai. Sāksim zīmēt tekstu no punkta (3, 3) - lapas augšējā kreisā stūra, ar nelielu 3 pikseļu atkāpi. Katra nākamā rinda tiks nobīdīta pēc līnijas augstuma:

procedūru TForm1.prn;
var i: vesels skaitlis;
sākt
ar Attēls1.Audekls darīt
priekš i:=1 uz Memo1.Lines.Count darīt
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
beigas;

Tagad viss ir gatavs teksta izvadīšanai. Mēs to darīsim, izmantojot OnChange notikumu:

procedūru TForm1.Memo1Change(Sūtītājs: TObject);
sākt
klīringa;
prn;
lappuse;
beigas;

Un visbeidzot, fonta lieluma maiņas procedūra:

procedūru TForm1.Edit1Change(Sūtītājs: TObject);
sākt
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=Up Down1.Position;
Memo1Change (sūtītājs);
beigas;

Varat modificēt šo programmu, lai drukātu tekstu. Lai strādātu ar printeri, ir jāpievieno modulis Printeri:

vienība Nodaļa 1;

Interfeiss

lietojumiem
Windows, ziņojumi, SysUtils, varianti, klases, grafika, vadīklas, veidlapas,
Dialogi, StdCtrl, Printeri ;

Strādājot ar printeri kā audeklu, tiek izsaukta metode, lai sāktu drukāšanu BeginDoc, tad dokuments tiek izvadīts, drukāšana tiek pabeigta, izsaucot metodi EndDoc:

Printeris.BeginDoc;
ar Printeris.Audekls darīt
sākt
...Drukāt dokumentu...
beigas;
Printeris.EndDoc;

Printera tīmekļa platums un augstums ir pieejams, izmantojot rekvizītus Printeris.Lapas platums Un Printeris.Lapas augstums. Izmantojot šo metodi, varat pabeigt drukāšanu uz vienas lapas un sākt drukāt uz citas Printeris.Jauna lapa.

LABORATORIJAS DARBS

TĒMA: « Grafika iekšāDelfos– vienkāršākā uzbūve
ģeometriskas formas"

Īsa informācija no teorijas

Delphi nodrošina izstrādātājam trīs veidus, kā parādīt grafiku:

    zīmēšana, kamēr programma darbojas

    iepriekš izveidotas grafikas izmantošana

    attēlu veidošana, izmantojot grafiskos komponentus

Grafu veidošanai ir izveidotas speciālas klases, kas nodrošina rīkus un metodes zīmēšanai: rīki aprakstīti trīs klasēs - Tfont, Tpen, Tbrush; Zīmēšanas apgabalu un metodes nodrošina Tcanvas klase.

KlaseTfonts– norāda fonta īpašības, ko izmanto teksta attēlošanai uz audekla. Klases īpašības ir aprakstītas sadaļā “Vairumam komponentu pieejamās pamata īpašības”.

KlaseTpen– norāda pildspalvas (zīmuļa) īpašības, ar kuru tiek vilktas līnijas.

Īpašības klasē Tpen:

Krāsa:Tcolor — līnijas krāsa (noklusējums — melna)

Platums:integer – līnijas biezums pikseļos;

Stils = (psSolid, psDash, psDot, psdashDot, psClear) — nosaka līnijas stilu (cieta, pārtraukta, punktēta, domuzīme punktēta, neredzama)

KlaseBrush– nosaka otas īpašības, kas krāso attēla virsmu.

Īpašības klasē Brush:

Krāsa:Tcolor — otas krāsa (noklusējums — balta)

Stils– otas raksts, var iegūt šādas vērtības:

BsSolid – vienkrāsains

BsClear – ēnojuma trūkums

BsVertical – vertikālas līnijas

BsBdiagonal – labās diagonālās līnijas

BsDiagCross – slīpa šūna

BsHorizontal – horizontālas līnijas

BsFdiagonal – kreisās diagonālās līnijas

BsCross – būris

KlaseTcanvas– nosaka virsmu, uz kuras tiek novietots izveidotais attēls, un rīkus, ar kuriem attēls tiek veidots: fonts, zīmulis, ota.

Pēc noklusējuma visa veidlapas klienta apgabals tiek izmantots kā darba apgabals (audekls) (bez veidlapas galvenes, galvenās izvēlnes un ritināšanas līnijām), taču veidlapā varat piešķirt mazākas darba zonas, izmantojot komponentus. PaintBox vai Attēls. Audekla koordinātas izcelsme ir darba zonas augšējais kreisais stūris, darba zonas platumu nosaka rekvizīts ClientWidth, augstums – īpašums ClientHeight.

Īpašības klasē Tcanvas:

Audekls:Tcanvas – nosaka zīmēšanas laukumu

Ota:Tbrush – ota slēgtu formu krāsošanai

Fonts:Tfont – fonts teksta attēlošanai uz audekla

Pildspalva:Tpen – zīmulis (pildspalva) zīmēšanai

PenPos:Tpoint – neredzamā kursora pašreizējā atrašanās vieta uz audekla

komentēt : T punkta tips — definēts šādi:

Tips Punkts = ieraksts

Pikseļi: Tcolor - nosaka audekla pikseļu krāsas, X, Y - pikseļu koordinātas. Rekvizītu Pikseļi ir ērti izmantot, lai attēlotu grafikus, izmantojot atlasītās krāsas punktus.

Galvenās TCanvas klases metodes

    procedūru Pārvietot uz(x,y:vesels skaitlis); - pārvieto pildspalvu, nevelkot līniju, uz punktu ar koordinātām (x, y).

    Procedūra LineTo(x,y:vesels skaitlis); - velk līniju no pašreizējā punkta līdz punktam ar koordinātām (x, y).

Piemērs : velciet uz formas diagonāli zilu līniju no formas augšējā kreisā stūra līdz apakšējam labajam stūrim.

Pen.color:= clblue;

PārvietotUz(0,0); LineTo(klienta platums, klienta augstums);

    procedūru Taisnstūris(x1,y1,x2,y2:vesels skaitlis); - uzzīmē taisnstūri: x1,y1 – augšējā kreisā stūra koordinātas; x2, y2 ir apakšējā labā stūra koordinātas.

Piemērs : uzzīmējiet dzeltenā krāsā iekrāsotu kvadrātu ar 60 pikseļu malu formas vidū.

var Xc,Yc: vesels skaitlis; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

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

    procedūru Elipse(x1,y1,x2,y2:vesels skaitlis); - uzzīmē taisnstūrī ierakstītu elipsi ar norādītajām koordinātām.

Piemērs : uzzīmējiet elipsi, kas ierakstīta PaintBox komponentā.

PaintBox1.Canvas.Pen.Width:=4; //līnijas platums = 4 pikseļi

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

    procedūru Daudzstūris(); - uzzīmē slēgtu daudzstūri, ko nosaka koordinātu masīvs.

Piemērs : uzzīmējiet aizpildītu dimantu, kas savieno formas malu viduspunktus

Var Xc,Yc:vesels skaitlis; // veidlapas klienta zonas centra koordinātas

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Audekls.Ota.Krāsa:=Rgb(275,140,70); // apelsīns krāsa ēnojumu

Audekls.Daudzstūris();

beigas;

    Procedūra Arc(x1,y1,x2,y2,x3,y3,x4,y4:vesels skaitlis); - parāda elipses loku, ko ierobežo taisnstūris (x1, y1, x2, y2). Loka tiek parādīta no punkta ar koordinātām (x3,y3) līdz punktam ar koordinātām (x4,y4) pret pulksteņrādītāja virzienā.

Piemērs : uzzīmējiet elipses loku, kas savieno komponenta augšējās malas vidu
PaintBox ar tās labās puses vidu.

Procedūra Tform1.Button1Click(Sender:Object);

Var X3,y3,x4,y4: vesels skaitlis;

Ar PaintBox1 dariet

Canvas.Pen.Color:= cWhite;

Audekls.Pildspalva.Platums:= 3;

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

X3:= ClientWidth div 2;

X4:= Klienta platums;

Y4:= ClientHeight div 2;

Canvas.Pen.Color:= clMaroon;

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

Beigas;

    procedūru Akords(x1,y1,x2,y2,x3,y3,x4,y4:vesels skaitlis); - novelk akordu - taisni, kas savieno 2 elipses punktus: punktu ar koordinātām (x3, y3) ar punktu (x4, y4).

Piemērs : ARC metodes piemērā aizstājiet Chord metodi un iegūstiet šādu rezultātu.

    procedūru Pīrāgs(x1,y1,x2,y2,x3,y3,x4,y4:vesels skaitlis); - uzzīmē elipses segmentu, kas savieno elipses centru ar koordinātām (x3,y3) un (x4,y4).

Piemērs : ARC metodes piemērā iedomājieties PIE metodi un iegūstiet šo rezultātu.

    procedūru TextOut(x,y:vesels skaitlis;Teksts:virkne); - izvada parametrā Teksts nodoto virkni taisnstūrī, kura augšējais kreisais stūris ir norādīts x,y koordinātas. Fonta raksturlielumus iestata rīks Fonts.

Piemērs : veidlapas apakšā ierakstiet uzzīmētā grafika nosaukumu.

Audekls.Fonts.Augstums:=20 ; //rakstzīmju augstums 20 pikseļi

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, ‘funkcijas SIN(X) grafiks’);

Grafiskās sastāvdaļas

Delphi piedāvā vairākus gatavus komponentus, kas ļauj uzlabot lietotāja interfeiss. Šīs sastāvdaļas atrodas lapā Papildu Un Sistēma komponentu paletes.

KomponentsAttēls(KlaseLaiks) – izveidots, lai parādītu grafiskos attēlus, kas saglabāti ārējos failos ar paplašinājumiem:

    Ikona (ikona, piktogramma);

    Bmp (bitkarte, bitkarte);

    Wmf, .emf (metafails);

    Jpg, .jpeg (JPEG saspiests attēls).

Pamata īpašības :

Autosize:boolean – ja iestatīts uz True, komponents pielāgo savus izmērus ielādētā attēla izmēram; noklusējuma vērtība ir nepatiesa.

Izstiepties:boolean – ja patiess, ielādētā vērtība aizņem visu komponenta laukumu; noklusējuma vērtība ir nepatiesa.

Audekls:Tcanvas – izmanto zīmēšanai komponenta iekšpusē programmas izpildes laikā.

Bilde:Tpicture — definē komponentā ievietoto attēlu.

Pamata metodes klasē Attēls:

Procedūra LoadFromFile(Faila nosaukums:virkne); - komponentā ielādē attēlu no faila ar nosaukumu Filename.

Procedūra SaveToFile(Faila nosaukums:virkne); -saglabā komponenta attēlu failā ar nosaukumu Filename.

KomponentsPaintBox - definē taisnstūra zīmēšanas laukumu. Galvenais īpašums ir Audekls, ir pieejamas visas Tcanvas klases metodes, tai nav neatkarīgu īpašību.

Piemērs : uzzīmējiet dzeltenu elipsi, kas ierakstīta PaintBox1 komponentā.

Procedūra Tform1Button1Click(sūtītājs:Objekts);

Ar PaintBox1.Canvas darīt

Brush.Color:=clyellow;

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

beigas;

KomponentsBitBtn rastra poga

BitBtn poga, atšķirībā no standarta, var papildus nosaukumam (Paraksts) saturēt attēlu, ko nosaka rekvizīts. Glifs. Ir standarta BitBtn pogu komplekts ar iepriekš definētiem rekvizītiem (ar konkrētu attēlu, uzrakstu un mērķi) - standarta pogas veids tiek atlasīts, izmantojot īpašumu Laipni. Veids=(bkCustom, bkAbort,bkCancel, bkClose…)

Uzdevums Nr.1

Izveidojiet lietojumprogrammu, kas satur divus attēla komponentus un 4 pogas galvenajā veidlapā ("Ielādēt attēlu", "Izveidot ģeometrisku figūru", "Mainīt krāsu", "Iziet") un ļauj:

a) ielādējiet lietotāja atlasītajā Image1 komponentā grafiskais attēls lai attēls aizņemtu visu attēla komponenta laukumu.

b) zem Image1 komponenta parādiet uzrakstu “Šis ir attēls no faila.

(jebkuram komponenta izmēra un novietojuma mērījumamAttēls1 uzrakstam vajadzētu
atrodas stingri zem komponenta).

c) uzzīmējiet ģeometrisku figūru komponenta Image2 iekšpusē: aizpildītu elipses segmentu, kas savieno attēla komponenta vidu ar attēla komponenta apakšējās un labās puses vidusdaļu.

(par jebkurām izmaiņām komponenta izmērā un pozīcijāAttēls2 figūra ir jākonstruē pareizi, t.i. saskaņā ar komponenta specifikācijuAttēls2)

d) pēc lietotāja pieprasījuma mainiet attēlā2 zīmētās figūras līnijas krāsu, izmantojot ColorDialog komponentu.

Uzdevums Nr.2

Izveidojiet lietojumprogrammu, kas ļauj nejauši ievietot vairākas etiķetes (piemēram, vārdu "Urā!") Image komponentā. Lai īstenotu, izmantojiet ģeneratoru nejauši skaitļi Randomize un Random funkcija.

Lietotājam jāievada attēla komponenta izmēri, attēlā redzamais vārds un vārdu skaits.

Uzdevums Nr.3

Izveidojiet lietojumprogrammu, kas ļauj atlasīt ģeometriskas formas nosaukumu no ListBox un zīmēt atlasīto formu komponentā Image. Formas krāsa tiek izvēlēta no RadioGroup komponenta.

Uzdevums Nr.4

Sadaliet PaintBox1 komponentu 4 vienādās daļās, katru daļu nokrāsojiet citā krāsā, piemēram: zilā, dzeltenā, zaļā, sarkanā.

Blakus katram PaintBox1 stūrim ierakstiet šī stūra koordinātas (attiecībā pret veidlapas izcelsmi, uz kuras atrodas PaintBox1 komponents).

Uzdevums Nr.5

AR

atlasiet zīmējamās formas veidu no komponenta Radiogroup1, aizpildījuma krāsu no komponenta Radiogroup2 un uzzīmējiet atlasīto formu komponentā Image.

Uzdevums Nr.6

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Sadaliet PaintBox1 komponentu 2 vienādās daļās, katras daļas iekšpusē uzzīmējiet elipsi, kas piepildīta ar krāsu, ko lietotājs izvēlējies ColorDialog.

Uzdevums Nr.7

AR Izveidojiet lietojumprogrammu, kas ļauj:

atlasiet ģeometriskas formas nosaukumu no ListBox un uzzīmējiet izvēlēto formu komponentā Image. Forma ir jāaizpilda ar krāsu, ko lietotājs atlasījis ColorDialog komponentā, ja RadioGroup komponentā ir atlasīts Yes.

Uzdevums Nr.8

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Sadaliet PaintBox1 komponentu 4 vienādās daļās, katras daļas iekšpusē uzzīmējiet citu ģeometrisku formu (elipsi, rombu, trīsstūri un taisnstūri). Katras formas krāsu lietotājs izvēlas ColorGrid.

Uzdevums Nr.9

atlasiet ģeometriskās formas nosaukumu no sarakstlodziņa
formas (elipses, rombs, taisnstūris) un zīmē
atlasītā forma attēla komponentā. Atrašanās vieta
formas attēla komponentā (I ceturtdaļa, II ceturtdaļa,

III vai IV ceturksnis) un tiek izvēlēta figūras krāsa
no RadioGroup komponentiem.

10. uzdevums

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Nodrošiniet, lai sānu izmērs nevar būt teksts, nedrīkst būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru.

Sadaliet PaintBox1 komponentu 4 vienādās daļās, katras daļas iekšpusē uzzīmējiet ģeometrisku formu, ko lietotājs izvēlējies Combobox (elipse, rombs, trīsstūris un taisnstūris). Figūras krāsu izvēlas lietotājs ColorBox.

Uzdevums Nr.11

Izveidojiet lietojumprogrammu, kas ļauj:

izvēlieties no radiogrupas komponenta zīmējuma pozīciju

taisnleņķa trīsstūra komponentā Attēls iestatiet
figūras ēnojuma vai kontūras krāsas krāsa atkarībā no
iespējot izvēles rūtiņas pogas. Izvēlieties krāsu caur
ColorGrid komponents.

12.uzdevums

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Nodrošiniet, lai sānu izmērs nevar būt teksts, nedrīkst būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru.

Sadaliet PaintBox1 komponentu 2 vienādās daļās, vienas no daļām iekšpusē uzzīmējiet ģeometrisku formu, ko lietotājs izvēlējies Combobox (elipses, rombas, trīsstūris un taisnstūris). Figūras krāsu izvēlas lietotājs ColorBox.

Piemēram, varat mainīt veidlapas krāsu šādi:

forma1.Krāsa:= ColorBox1.Colors;

Uzdevums Nr.13

Izveidojiet lietojumprogrammu, kas ļauj:

a) figūras vidū uzzīmē kvadrātu (laukuma malas izmēru ievada lietotājs). Nodrošiniet, lai sānu izmērs nevar būt teksts, nedrīkst būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru.

b) sadaliet kvadrātu vienā vai divās diagonālēs atkarībā no izvēles rūtiņas pogu iekļaušanas un krāsojiet katru iegūto trīsstūri citā krāsā. Krāsas izvēli veic lietotājs.

14.uzdevums

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Nodrošiniet, lai sānu izmērs nevar būt teksts, nedrīkst būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru.

Sadaliet PaintBox1 komponentu 2 vienādās daļās, vienas daļas iekšpusē uzzīmējiet rombu, bet otras daļas iekšpusē uzzīmējiet jebkuru trīsstūri. Figūras krāsu izvēlas lietotājs ColorBox.

Piemēram, varat mainīt veidlapas krāsu šādi:

forma1.Krāsa:= ColorBox1.Colors;

15.uzdevums

Izveidojiet lietojumprogrammu, kas ļauj:

a) iestatiet attēla komponenta izmērus horizontāli un vertikāli, lai tie būtu vienādi un vienādi ar skaitli, ko lietotājs ievadījis no tastatūras;

(nodrošinot, ka sānu izmērs nevar būt teksts, nevar būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru)

b) sadaliet attēla komponentu 4 vienādos kvadrātos ar divām zilām līnijām;

c) katrā iegūtajā kvadrātā uzzīmējiet tajā ierakstītu apli (ļaujiet lietotājam izvēlēties apļu krāsu, izmantojot krāsu atlases dialoglodziņu).

16.uzdevums

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Nodrošiniet, lai sānu izmērs nevar būt teksts, nedrīkst būt negatīvs skaitlis un nedrīkst pārsniegt mazākās formas izmēru.

Sadaliet PaintBox1 komponentu 9 vienādās daļās un krāsojiet katru iegūto šaha taisnstūri. Aizpildījuma krāsu izvēlas lietotājs ColorBox.

Piemēram, varat mainīt veidlapas krāsu šādi:

forma1.Krāsa:= ColorBox1.Colors;

17.uzdevums

Veidlapā novietojiet divus attēla komponentus un četras pogas: Līnijas krāsa, Aizpildījuma krāsa, Labi un Iziet; un Rediģēt komponentu.

Noklikšķinot uz pogas Labi, attēlā 1 tiek uzzīmēts kvadrāts ar malu X, bet attēlā 2 tiek uzzīmēts taisnleņķa trīsstūris ar vienādām kājām, katrai no kurām ir garums X.

Trijstūra virsotne sakrīt ar attēla izcelsmi2. Viena no kvadrāta virsotnēm sakrīt ar attēla izcelsmi1.

Poga Labi kļūst pieejama tikai tad, ja formas zīmēšanai ir atlasīta līnijas krāsa un aizpildījuma krāsa.

X — atlasa nejauši, izmantojot funkciju Random, un X vērtībai ir jāparāda rediģēšanas komponentā.

18.uzdevums

Izveidojiet lietojumprogrammu, kas ļauj lietotājam iestatīt komponenta PaintBox1 izmērus (pikseļos).

Sadaliet PaintBox1 komponentu 4 vienādās daļās, lietotāja izvēlētās daļas iekšpusē jāizveido aizpildīts aplis, kura izmēru nosaka lietotājs. Lietotājs ColorBox izvēlnē izvēlas aizpildījuma krāsu.

Piemēram, varat mainīt veidlapas krāsu šādi:

forma1.Krāsa:= ColorBox1.Colors;

Grafiskās informācijas parādīšanas komponentu saraksts

Grafiskās informācijas attēlošanai Delphi bibliotēka nodrošina komponentus, kuru saraksts ir dots 4.1. tabulā.

Tabula 4.1 Grafiskās informācijas displeja komponenti Piktogramma

Komponents

Lappuse

Apraksts

Attēls

Izmanto grafikas attēlošanai: ikonas, bitkartes un metafaili.


PaintBox (logs zīmēšanai)

Izmanto, lai veidlapā izveidotu kādu laukumu, kurā var zīmēt.


DrawGrid (zīmējumu tabula)

Izmanto, lai rindās un kolonnās parādītu datus, kas nav teksta dati.


Diagramma (diagrammas un diagrammas)

Komponents pieder TChart komponentu saimei, ko izmanto diagrammu un grafiku izveidošanai.


Turklāt varat parādīt un ievadīt grafisko informāciju uz jebkuras attēlojuma grafikas uz audekla virsmas.

Audekls Audekls nav sastāvdaļa, tāpēc, stingri ņemot, to nevajadzētu uzskatīt šīs grāmatas ietvaros. Bet, tā kā daudziem komponentiem, īpaši formām, ir kontūra un kontūra nodrošina iespēju attēlot dažādu grafisku informāciju, tomēr ir ieteicams sniegt kādu sākotnējo informāciju par kontūru.

Audekls ir komponenta apgabals, uz kura var zīmēt vai parādīt gatavos attēlus. Tajā ir rekvizīti un metodes, kas ievērojami vienkāršo Delphi grafiku. Visas sarežģītās mijiedarbības ar sistēmu lietotājam ir paslēptas, tāpēc Delfos var zīmēt datorgrafikā nemaz nepieredzējis cilvēks.

Katram kontūras punktam ir koordinātas X Un Y. Audekla koordinātu sistēma, tāpat kā citur Delfos, ir izveidota audekla augšējā kreisajā stūrī. Koordināta X palielinās, pārvietojoties no kreisās puses uz labo, un koordinātu Y- pārvietojoties no augšas uz leju. Koordinātas mēra pikseļos. Pikselis ir mazākais dizaina virsmas elements, ar kuru var manipulēt. Pikseļa vissvarīgākā īpašība ir tā krāsa.

Audeklam ir īpašums Pikseļi. Šis īpašums ir divdimensiju masīvs, kas ir atbildīgs par audekla krāsām. Piemēram, Audekls. Pikseļi atbilst 10. pikseļa krāsai no kreisās puses un 20. pikseļa krāsai no augšas. Varat izturēties pret pikseļu masīvu kā pret jebkuru īpašumu: mainīt krāsu, piešķirot pikselim jaunu vērtību, vai noteikt tā krāsu pēc tajā saglabātās vērtības. Piemēram, Audekls. Pikseļi:=0 vai Audekls. Pikseļi:=clMelns- tas ir paredzēts, lai pikselim iestatītu melnu.

Īpašums Pikseļi var izmantot zīmēšanai uz audekla. Mēģināsim uz formas kontūras uzzīmēt sinusoīda grafiku pa pikseļiem. Lai to izdarītu, veidlapas notikumu apstrādātājā OnPaint(zīmējums) varat ievietot šādu kodu:

TForm1. FormPaint(Sūtītājs: TObject);

var,Y:real; // funkciju koordinātas,PY: longint; // pikseļu koordinātas

sākt:=clWhite;

priekš PX:=0 uz ClientWidth darīt

(X ir grafika arguments,

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

(PY — pikseļu koordināte,

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

(Iestata atlasītā krāsa

pikseļi (par spilgtumu). Pikseļi: = 0;

beigas;

Palaidiet šo testa lietojumprogrammu, un jūs redzēsiet rezultātu, kas parādīts 4.1. a attēlā. Sinusoidālā viļņa grafiks izrādījās, lai gan ne pārāk labs, jo ir sadalīts atsevišķos punktos – pikseļos.

Audekls - klases objekts TCanvas ir daudzas metodes, kas ļauj zīmēt grafikus, līnijas, formas, izmantojot īpašumu Pildspalva- spalva. Šis īpašums ir objekts, kuram savukārt ir vairākas īpašības. Viens no tiem ir jums jau pazīstams īpašums Krāsa- krāsa, ar kādu zīmējums ir uzklāts. Otrais īpašums - Platums(līnijas platums). Platums ir norādīts pikseļos. Noklusējuma platums ir 1.

Īpašums Stils nosaka līnijas veidu. Šim īpašumam var būt šādas vērtības:

Audeklam ir īpašums PenPos veids TPoint(cm .). Šis rekvizīts nosaka pildspalvas pašreizējo pozīciju audekla koordinātēs. Pildspalvas pārvietošana, nevelkot līniju, t.i. mainīt PenPos, ražots ar audekla metodi Pārvietot uz(X,Y).Šeit ( X, Y) - punkta koordinātas, uz kuru virzās pildspalva. Šis pašreizējais punkts kļūst par sākumpunktu, no kura tiek izmantota metode LineTo(X,Y) Jūs varat novilkt līniju uz punktu ar koordinātām ( X, Y).Šajā gadījumā pašreizējais punkts tiek pārvietots uz līnijas beigu punktu un jaunu zvanu LineTo piesaistīs punktu no šī jaunā pašreizējā punkta.

Mēģināsim ar pildspalvu uzzīmēt sinusa grafiku no iepriekšējā piemēra. Šajā gadījumā veidlapas notikumu apstrādātājs OnPaint var izskatīties šādi:

procedūru TForm1. FormPaint(Sūtītājs: TObject);

var,Y:real; // funkciju koordinātas,PY: longint; // pikseļu koordinātas

sākt: =clWhite;. MoveTo(0,ClientHeight div 2);

priekš PX: =0 uz ClientWidth darīt

(X ir grafika arguments,

atbilst pikselim ar koordinātu РХ):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY — pikseļu koordināte,

atbilst Y koordinātei):=trunc(ClientHeight - (Y+1) *ClientHeight/2);

(Grafikā tiek uzzīmēta līnija). LineTo(PX,PY);

Šīs versijas lietojumprogrammas rezultātu var redzēt 4.1. b attēlā. Kā redzat, grafikas kvalitāte ir ievērojami uzlabojusies.

Ar pildspalvu var zīmēt ne tikai taisnas līnijas, bet arī formas. Pilnu audekla metožu sarakstu, kurās tiek izmantota pildspalva, skatiet Delphi iebūvētajā palīdzībā. Pagaidām kā piemēru mēs sniegsim tikai vienu no tiem - Elipse, kas zīmē elipsi vai apli. Tas tiek deklarēts kā

procedūru Elipse(X1, Y1, X2, Y2: vesels skaitlis);

kur ir parametri X1, X2, Y1, Y2 noteikt taisnstūra koordinātas, kas apraksta elipsi vai apli. Piemēram, operators

Elipse(10, 40, 20, 50);

uzzīmēs apli ar diametru 10 un centra koordinātām (15, 45).

Vispārīgā gadījumā skaitļi tiek zīmēti nevis tukši, bet aizpildīti, izmantojot kanvas īpašību Ota- suka. Īpašums Ota ir objekts, kam savukārt ir vairākas īpašības. Īpašums Krāsa nosaka aizpildījuma krāsu. Īpašums Stils nosaka aizpildīšanas modeli (ēnojumu). Noklusējuma vērtība Stils vienāds bsCiets, kas nozīmē vienkrāsainu Krāsa.

Pie pildspalvas Pildspalva Ir vēl viens īpašums, kuru mēs vēl neesam izskatījuši. Šis īpašums ir Režīms(režīms). Noklusējuma vērtība Režīms = pmCopy. Tas nozīmē, ka līnijas tiek vilktas ar īpašumā norādīto krāsu Krāsa. Bet ir iespējami arī citi režīmi, kuros tiek ņemta vērā ne tikai krāsa Krāsa, bet arī atbilstošo fona pikseļu krāsu. Interesantākais no šiem režīmiem ir pmNotXor- papildinājums ar fonu, izmantojot apgrieztu ekskluzīvu VAI. Ja ir iestatīts šis režīms, tad, uzzīmējot to pašu figūru vēlreiz tajā pašā vietā uz audekla, tiek noņemts iepriekš uzzīmētais attēls un tiek atjaunotas pikseļu krāsas, kas bija pirms pirmā figūras attēla.

Šī režīma iezīme pmNotXor var izmantot, lai izveidotu vienkāršas animācijas. Pietiek kaut ko uzzīmēt, pēc tam izdzēsiet uzzīmēto, pārzīmējiet to nedaudz mainītu - un zīmējums, šķiet, atdzīvosies.

Mēģiniet pats izveidot vienkāršu animāciju - kustīgu apli. Sāciet jaunu lietojumprogrammu un dodieties uz īstenošana ievietot sludinājumu

X,Y: vesels skaitlis;

Tas ieviesīs globālos mainīgos X Un Y- pašreizējā attēla koordinātas.

Formas pasākumā OnPaint ievietot paziņojumus

Ota. Krāsa:=clWhite;:=clWhite;. Pildspalva. Režīms:=pmNotXor;

Pirmais no šiem operatoriem otas krāsu iestata uz baltu Ota. Tas nozīmē, ka jūsu aplis iekšpusē tiks nokrāsots baltā krāsā. Otrais operators veidlapas virsmas fona krāsu iestata uz baltu.

Trešais operators iestata pildspalvas režīmu pmNotXor, kas ļaus izdzēst veco attēlu pirms jauna zīmēšanas.

Pat visvienkāršākā animācija ir jāsinhronizē. Pretējā gadījumā kustības ātrumu noteiks datora ātrums. Tāpēc pārsūtiet komponentu uz formu Taimeris- taimeris no sistēmas lapas. Šis komponents ir aprakstīts 5.7. sadaļā .

Tur var noskatīties Detalizēts apraksts. Pagaidām iestatiet tā īpašumu Intervāls vienāds ar, piemēram, 30 (tas ir ekspozīcijas laiks milisekundēs, bet īsts laiks aizvara ātrums būs garāks - skatiet 5.7. sadaļu) un iestatiet īpašību Iespējots vienāds viltus(tas nozīmē, ka taimeris nesāksies automātiski, palaižot programmu).

Šī komponenta notikumu apstrādātājā Ieslēgts taimeris ievietot paziņojumus

// Dzēst iepriekšējo attēlu. Elipse (X-5, Y, X+5, Y-1Q);(X);

// Uzzīmējiet jaunu attēlu. Elipse (X-5, Y, X+5, Y-10);

// Apstāties, sasniedzot veidlapas beigas

ja(X >= ClientWidth-20) tad. Iespējots: = false;

Pirmais no šiem operatoriem zīmē apli vietā, kur tas tika uzzīmēts agrāk, t.i. izdzēš iepriekšējo attēlu.

Pēdējais operators aptur attēlu pie veidlapas malas.

Tagad pievienojiet veidlapai pogu Poga un ievietojiet operatorus klikšķu apstrādātājā

X: =10;: =100;. Elipse (X-5, Y, X+5, Y-10);. Iespējots: =true;

Pirmie divi operatori norāda apļa sākotnējās koordinātas. Trešais operators zīmē apli sākuma pozīcijā, bet ceturtais operators iedarbina taimeri.

Pārraidiet lietojumprogrammu, palaidiet to, noklikšķiniet uz pogas. Jūs redzēsit attēlu, kurā aplis pārvietojas pa formu no kreisās puses uz labo. Un tad izmantojiet savu iztēli un pārveidojiet šo ne pārāk interesanto aplikāciju par kaut ko aizraujošāku.

Audekls var attēlot ne tikai programmatiski izveidotus attēlus, bet arī attēlus, kas saglabāti grafiskajos failos. Tikai pašam kanvam nav metodes attēla ielādēšanai no faila. Tāpēc fails ir jāielādē kādā citā grafiskajā objektā, kas var saņemt informāciju no grafiskajiem failiem. Un pēc tam pārrakstiet attēlu no šī objekta uz audeklu, izmantojot audekla metodi Zīmēt. Tās apraksts:

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

Šeit ir parametri X Un Y noteikt attēla novietojuma uz audekla augšējā kreisā stūra koordinātas, a Grafisks- objekts, kas glabā informāciju. Šāds objekts var būt, piemēram, tipa objekts TBitMap, kas paredzēts bitu matricu glabāšanai. Redzēsim, kā tas viss izskatās praksē.

Atveriet jaunu lietojumprogrammu, velciet komponentu uz veidlapu OpenPictureDialog no lapas Dialogi (šī ir grafisko failu atvēršanas dialoga sastāvdaļa - skatiet sadaļu 8.2 ) un pogu Poga. Vieta OpenPictureDialog jebkurā veidlapas vietā, jo šis komponents nav vizuāls, un novietojiet pogu veidlapas apakšā. Pievienojiet šo kodu savam pogas klikšķu apstrādātājam:

procedūru TForm1. Button1Click(Sūtītājs: TObject);

var: TBitMap;

// Lietotāja izvēle grafiskais fails

ja OpenPictureDialog1. Izpildīt tad

// Izveidojiet TBitMap tipa bitkartes objektu: =TBitMap. Izveidot;

// Pārsūtiet attēlu uz formas audeklu. Draw(10, 10, BitMap);

//BitMap objekta iznīcināšana. Bezmaksas;

beigas;

Šis kods izveido pagaidu objektu TBitMap Ar vārdu Bitkarte. Pēc tam tiek izsaukts dialoglodziņš grafiskā faila atvēršanai OpenPictureDialog1 un, ja lietotājs ir atlasījis failu, tas tiek lejupielādēts uz Bitkarte metodi LoadFromFile. Pēc tam izmantojot metodi Zīmēt ielādētais attēls tiek kopēts uz audekla apgabalā ar augšējā kreisā stūra koordinātām (10,10). Pēc tam pagaidu objekts Bitkarte tiek iznīcināts.

Palaidiet lietojumprogrammu un noklikšķiniet uz tās pogas. Jūs redzēsit, ka varat augšupielādēt jebkura veida grafiskos failus. bmp un tas tiks parādīts veidlapas kontūrā (sk. 4.2. att. a). Grafiskos failus var atrast direktorijā Attēli. Delphi 5 un 4 tas parasti atrodas direktorijā. \program files\Common Files\Borland Shared. Delphi 3 tas atrodas direktorijā. \program files\Borland\Delphi 3, bet Delphi 1 - direktorijā Delphi 16. Katalogā Images jo īpaši atrodas apakšdirektorijs \Images\Splash\16Color\, kurā tiek saglabāts piemērā ielādēts fails 1. 4.2

Jūs esat izveidojis labu lietojumprogrammu grafisko failu apskatei. Bet tagad mēģināsim redzēt tā galveno trūkumu. Neaizverot lietojumprogrammu, dodieties uz kādu citu programmu, piemēram, atgriezieties Delphi. Pēc tam, tur neko nedarot, dodieties atpakaļ uz darbojošos lietojumprogrammu. Ja programmas logs, kurā ienācāt, pilnībā bloķēja jūsu lietojumprogrammas logu, tad, atgriežoties tajā, jūs redzēsit, ka logā redzamais attēls ir pazudis. Ja jūsu lietojumprogrammas logs pārklājās tikai daļēji, tad, atgriežoties pie lietojumprogrammas, jūs varat redzēt rezultātu, kas ir līdzīgs 4.2. b attēlā parādītajam.

Redzi, ja kādas citas aplikācijas logs īslaicīgi pārklājas ar tavas aplikācijas logu, tad uz veidlapas kontūras uzzīmētais attēls tiek sabojāts. Apskatīsim, kā mēs varam novērst šo trūkumu.

Ja logs ir aizsegts un attēls ir bojāts, operētājsistēma paziņo lietojumprogrammai, ka vidē ir kaut kas mainījies un lietojumprogrammai ir jārīkojas atbilstoši. Tiklīdz ir nepieciešams loga atjauninājums, tam tiek ģenerēts notikums OnPaint. Šī notikuma apdarinātājā (mūsu gadījumā veidlapas notikumā) attēls ir jāpārzīmē.

Pārzīmēšanu var veikt Dažādi ceļi atkarībā no pielietojuma. Mūsu piemērā būtu iespējams deklarēt mainīgo Bitkarte(operators var BitMap: TBitMap) ārpus iepriekš minētās procedūras, t.i. padarīt šo mainīgo globālu, ievietojot to tieši sadaļā īstenošana. Operators Bitkarte. Bezmaksas var pārvietot uz veidlapas notikumu apdarinātāju OnDestroy, kas notiek, kad lietojumprogramma tiek aizvērta. Tad visas lietojumprogrammas izpildes laikā komponentā būs attēla kopija Bitkarte un jums vienkārši jāieiet notikumu apstrādātājā OnPaint veidlapā ir tikai viens operators:

Draw(10, 10, BitMap);

Dariet to, un jūs redzēsiet, ka veidlapas attēls nepasliktinās logu pārklāšanās dēļ.

Papildus aplūkotajai metodei Zīmēt kontūrai ir arī kopēšanas metode CopyRect:

CopyRect(Galamērķis: TRect; Canvas: TCanvas; Avots: TRect);

Metode kopē norādīto parametru Avots attēla apgabals attēla avota audeklā Audekls uz norādīto parametru Galšī audekla laukums. Tips TRect, kas raksturo taisnstūra laukumus Avots Un Gal, kas jau aprakstīts 3.2 .

Piemēram, operators

CopyRect(MyRect2, Bitmap. Canvas, MyRect1);

kopijas uz veidlapas kontūru apgabalā MyRect2 attēls no apgabala MyRect1 komponentu audekls Bitkarte.

Kopēšanas metode CopyRect tiek veikta īpašuma norādītajā režīmā Kopēšanas režīms. Pēc noklusējuma šim īpašumam ir vērtība cmSrcCopy, kas vienkārši nozīmē iepriekš apgabalā esošā attēla nomaiņu Gal, uz kopēto attēlu. Citas iespējamās vērtības Kopēšanas režīmsļauj apvienot attēlus, taču to izskatīšana ir ārpus šīs grāmatas darbības jomas.

Mēs aprobežosimies ar šo pamatinformāciju par grafiskās informācijas attēlošanu uz audekla. Sadaļā 3.2 tika sniegta informācija par teksta izvadi uz kontūru. Kopumā audekls ir sarežģīts objekts, kam ir daudz vairāk īpašību un metožu. Bet tas prasa paplašinātu diskusiju ārpus šīs grāmatas darbības jomas. Nākamajā sērijas Viss par Delphi grāmatā šie jautājumi tiks aplūkoti sīkāk.

Logu sastāvdaļa, kurai ir īpašums Audekls- audekls.

Attēlu un PaintBox komponenti

Sastāvdaļas Attēls Un PaintBox attēlot kādu ierobežotu virsmu ar audeklu, uz kuras var rakstīt attēlus, kā aprakstīts 4.2. sadaļā . Šajā gadījumā komponents PaintBox, stingri ņemot, nesniedz neko jaunu, salīdzinot ar formas zīmēšanu uz audekla. Zīmējot tālāk PaintBox formas vietā tam nav nekādu priekšrocību, izņemot, iespējams, kādu atvieglojumu viena vai vairāku zīmējumu izkārtojumā loga zonā.

Bet papildus šīm iespējām komponents Attēls Ir rekvizīti, ar kuriem var strādāt dažādi veidi grafiskie faili Atbalsta trīs veidu failus - bitu matricas, ikonas un metafailus. Visi trīs failu veidi saglabā attēlus; atšķirība ir tikai tajā, kā tie tiek glabāti failos un līdzekļos, kā tiem piekļūt. Bitu matrica (fails ar paplašinājumu . bmp) parāda katra attēla pikseļa krāsu. Šajā gadījumā informācija tiek saglabāta tā, lai jebkurš dators varētu parādīt attēlu ar tā konfigurācijai atbilstošu izšķirtspēju un krāsu skaitu.

Piktogrammas (faili ar paplašinājumu . ico) ir mazas bitu matricas. Tos parasti izmanto, lai attēlotu lietojumprogrammu ikonas ātrajās pogās, izvēlnes elementos, iekšā dažādi saraksti. Attēlu saglabāšanas metode ikonās ir līdzīga informācijas glabāšanai bitu matricās, taču pastāv arī atšķirības. Jo īpaši ikonu nevar mērogot; tā paliek tādā pašā izmērā, kādā tā tika izveidota.

Metafaili nesaglabā attēlu veidojošo bitu secību, bet gan informāciju par to, kā attēls tika izveidots. Tie saglabā zīmēšanas komandu secības, kuras var atkārtot, veidojot attēlu no jauna. Tādējādi šādi faili parasti ir kompaktāki nekā bitu matricas.

Komponents Attēlsļauj parādīt informāciju, kas ietverta visu norādīto veidu grafiskajos failos. Tas tiek panākts ar tā īpašumu Bilde- tipa objekts TAttēls.

Att.4.3 Attēlu redaktora logs


Lai iepazītos ar šo īpašumu, atveriet jaunu lietojumprogrammu un velciet komponentu uz formu Attēls. Izstiepiet to vai iestatiet tā īpašumu Izlīdzināt vienāds alClient lai tas aizņemtu visu veidlapas klienta apgabalu. Noklikšķiniet uz pogas ar elipsi blakus īpašumam Bilde logā Object Inspector vai vienkārši veiciet dubultklikšķi uz Attēls. Jūsu priekšā atvērsies attēlu redaktora logs (4.3. att.), kas ļaus ielādēt īpašumā Bilde kādu grafisko failu (poga Ielādēt) un arī saglabājiet atver failu ar jaunu nosaukumu vai jaunā direktorijā. Noklikšķiniet uz Ielādēt, lai ielādētu grafisko failu. Jūs redzēsiet logu grafiskā faila atvēršanai, kas parādīts 4.4. Att. Pārvietojot kursoru grafisko failu sarakstā, tajos esošie attēli tiek parādīti labajā logā un virs tiem ir skaitļi, kas raksturo attēla izmēru . Varat izvēlēties jebkura veida grafisko failu, kas jums nepieciešams. Atgādināsim, ka ar Delphi piegādātos grafiskos failus varat atrast attēlu direktorijā. Delphi 5 un 4 tas parasti atrodas direktorijā. \program files\Common Files\Borland Shared. Delphi 3 tas atrodas direktorijā. \program files\Borland\Delphi 3, bet Delphi 1 - direktorijā Delphi 16. Kad fails ir ielādēts, attēlu redaktora logā un savā komponentā noklikšķiniet uz Labi. Attēls Tiks parādīts jūsu izvēlētais attēls. Varat palaist savu lietojumprogrammu un apbrīnot to. Tomēr jūs jau redzat attēlu, pat nepalaižot lietojumprogrammu.

Kad projektēšanas procesā ielādējāt attēlu no faila komponentā Attēls, tas to ne tikai parāda, bet arī saglabā lietojumprogrammā. Tas dod jums iespēju piegādāt lietojumprogrammu bez atsevišķa grafikas faila. Tomēr, kā mēs redzēsim vēlāk, in Attēls Varat arī ielādēt ārējos grafiskos failus, kamēr lietojumprogramma darbojas.

Atgriezīsimies pie komponentu īpašību apsvēršanas Attēls.

Ja iestatāt īpašumu AutoSize V taisnība, pēc tam komponenta izmēru Attēls automātiski pielāgosies tajā ievietotā attēla izmēram. Ja īpašums AutoSize uzstādīts iekšā viltus, tad attēls var neiederēties komponentā vai, gluži pretēji, komponenta laukums var būt daudz lielāks par attēla laukumu.

Vēl viens īpašums - Izstieptiesļauj pielāgot nevis komponentu attēla izmēram, bet gan attēlu komponenta izmēram. Uzstādīt AutoSize V viltus, izstiepiet vai samaziniet komponenta izmēru Attēls un instalēt Izstiepties V taisnība. Jūs redzēsiet, ka zīmējums aizņems visu komponenta laukumu, taču maz ticams, ka tas reāli noteiks izmērus Attēls tieši proporcionāli attēla izmēram, attēls tiks izkropļots. Uzstādīt Izstiepties V taisnība var būt jēga tikai dažiem modeļiem, bet ne attēliem. Īpašums Izstiepties neietekmē ikonu attēlus, kuru izmērus nevar mainīt.

Īpašums - Centrs, iestatīts uz taisnība, centrē attēlu apgabalā Attēls, ja komponenta izmērs ir lielāks par attēla izmēru.

Apskatīsim vēl vienu īpašumu - Caurspīdīgs(caurspīdīgums). Ja Caurspīdīgs vienāds taisnība, pēc tam attēls Attēls kļūst caurspīdīgs. To var izmantot, lai pārklātu attēlus vienu virs otra. Novietojiet otro komponentu uz formas Attēls un ielādējiet tajā citu attēlu. Vienkārši mēģiniet uzņemt nedaudz aizpildītu kontūras attēlu. Varat, piemēram, uzņemt attēlu no tiem, kas parasti atrodas uz pogām, piemēram, bultiņu (file.\program files\common files\borland shared\images\buttons\arrow1l. bmp). Pārvietojiet savu Attēls tā, lai tie pārklātos viens ar otru, un augšējā komponentu komplektā Caurspīdīgs vienāds taisnība. Jūs redzēsiet, ka augšējais attēls vairs neaizsedz apakšējo. Viens no šī īpašuma iespējamiem lietojumiem ir uz attēla uzlikt uzrakstus, kas veidoti bitu matricas veidā. Šos uzrakstus var izveidot, izmantojot Delphi iebūvēto attēlu redaktora programmu.

Lūdzu, ņemiet vērā, ka īpašums Caurspīdīgs ietekmē tikai bitu matricas. Šajā gadījumā bitu matricas apakšējā kreisā pikseļa krāsa pēc noklusējuma tiek padarīta caurspīdīga (t.i., aizstāta ar attēla krāsu, kas atrodas zem tā).

Mēs aptvērām attēla ielādi no faila projektēšanas procesā. Bet īpašums Bilde Tas arī atvieglo apmaiņu ar jebkura veida grafiskajiem failiem lietojumprogrammas izpildes laikā. Lai izskaidrotu šādas apmaiņas tehniku, mums vispirms ir sīkāk jāapsver īpašums Bilde.

Šis rekvizīts ir objekts, kuram savukārt ir apakšrekvizīti, kas norāda uz saglabāto grafisko objektu. Ja iekšā Bilde bitu matrica tiek saglabāta, un to norāda rekvizīts Bilde. Bitkarte. Ja ikona ir saglabāta, uz to norāda rekvizīts Bilde. Ikona. Saglabāto metafailu norāda rekvizīts Bilde. Metafails. Visbeidzot, jebkura veida grafisko objektu norāda rekvizīts Bilde. Grafisks.

Objekts Bilde un tās īpašības Bitkarte, Ikona, Metafails Un Grafisks ir failu lasīšanas un rakstīšanas metodes LoadFromFile Un SaveToFile:

procedūru LoadFromFile( konst Faila nosaukums: virkne);

procedūru SaveToFile( konst Faila nosaukums: virkne);

Īpašumiem Bilde. Bitkarte, Bilde. Ikona Un Bilde. Metafails Faila formātam jāatbilst objekta klasei: bitu matrica, ikona, metafails. Nolasot failu īpašumā Bilde. Grafisks failam jābūt metafaila formātā. Un par pašu objektu Bilde Lasīšanas un rakstīšanas metodes tiek automātiski pielāgotas faila tipam. Paskaidrosim to ar piemēru.

Izveidosim lietojumprogrammu, kas ir līdzīga grafisko failu skatīšanas piemēram, kas apskatīts sadaļā 4.2. Dažādības labad varat to kontrolēt, izmantojot kaut ko citu, nevis pogu Poga un izvēlni. Novietojiet sastāvdaļu uz veidlapas Attēls. Izstiepiet to vai iestatiet tā īpašumu Izlīdzināt vienāds alClient lai tas aizņemtu visu veidlapas klienta apgabalu. Velciet grafiskā faila atvēršanas dialoga komponentu uz formu OpenPictureDialog(skatīt 8.2 ). Ievietojiet veidlapā arī galvenās izvēlnes komponentu Galvenā izvēlne(skatīt 6.1 ) un iestatiet tajā vienu sadaļu - Fails. Šīs sadaļas apdarinātājā ierakstiet paziņojumu

(OpenPictureDialog1.Execute) tad. Bilde. LoadFromFile(.FileName);

Šis operators izsauks dialogu grafiskā faila atvēršanai (skat. 4.4. att.) un ielādēs to komponentā Attēls1 attēlu no lietotāja izvēlēta faila (skat. 4.5. att.). Turklāt fails var būt jebkura veida: bitu matrica, ikona vai metafails.

Att.4.5 Attēls komponentā Attēls bitu matrica (a) un piktogramma (6)



Šajā pieteikumā metode LoadFromFile attiecas uz Attēls1. Bilde. Ja tiks atvērti tikai bitu matricas faili, failu ielādes operatoru var aizstāt ar

Bilde. Bitkarte LoadFromFile(.FileName);

Piktogrammām var izmantot operatoru. Bilde. Ikona. LoadFromFile(.FileName);

un metafailiem - operators. Bilde. Metafails. LoadFromFile(.FileName);

vai. Bilde. Grafisks. LoadFromFile(.FileName);

Bet visos šajos gadījumos, ja faila formāts neatbilst paredzētajam, radīsies kļūda. Metode darbojas līdzīgi SaveToFile ar atšķirību, kas attiecās uz Bilde vai uz Bilde. Grafisks tas failā saglabā jebkura formāta attēlu. Piemēram, ja paplašinājāt savu pieteikumu, izmantojot dialoglodziņu SavePictureDialog(skatīt 8.2 ), izvēlnē ievadiet sadaļu Saglabāt kā un ievietojiet operatoru tā apdarinātājā

SavePicture Dialog1. Izpildīt tad. Bilde. SaveToFile(SavePictureDialog1. FileName);

tad lietotājs varēs saglabāt jebkura formāta attēlu failā ar jaunu nosaukumu. Tikai šajā gadījumā, lai izvairītos no neskaidrībām nākotnē, saglabātā faila paplašinājumam joprojām ir jāatbilst saglabātā attēla formātam.

Programma darbosies pilnīgi identiski jebkura formāta attēliem, ja aizstāsiet saglabāšanas operatoru ar

Bilde. Grafisks. SaveToFile(.FileName);

izmantojot īpašumu Bilde. Grafisks. Un, ja zināt komponentā saglabātā formātu Attēls attēlus, varat izmantot šo metodi SaveToFile uz īpašumiem Bilde. Bitkarte, Bilde. Ikona Un Bilde. Metafails.

Visiem aplūkotajiem objektiem Bilde, Bilde. Bitkarte, Bilde. Ikona Un Bilde. Metafails Objekta vērtību piešķiršanas metodes ir definētas:

Piešķirt(Avots: TPastāvīgs);

Tomēr par Bitkarte, Ikona Un Metafails Varat piešķirt tikai viendabīgu objektu vērtības: attiecīgi bitu matricas, ikonas, metafailus. Izņēmums tiek izmests, mēģinot piešķirt vērtības neviendabīgiem objektiem EConvertError. Objekts Bilde- universāls, tam var piešķirt jebkuras pārējās trīs klases objektu vērtības. Un jēga Bilde var piešķirt tikai objektam, kura tips atbilst tajā saglabātā objekta veidam.

Metode Piešķirt var izmantot arī attēlu apmaiņai ar starpliktuves buferi. Piemēram, operators

Piešķirt(Attēls1.Attēls);

saglabās starpliktuvē saglabāto attēlu starpliktuvē Attēls1. Līdzīgs operators

grafikas delphi attēlu lietojumprogramma

Attēls1. Bilde. Piešķirt (starpliktuve);

lasīt iekšā Attēls1 attēlu starpliktuvē. Turklāt tas var būt jebkurš attēls un pat teksts.

Jums tikai jāatceras, strādājot ar starpliktuvi, lai ielīmētu to operatorā lietojumiem jūsu moduļa saite uz moduli Clipbrd. Delphi automātiski neievieto šo saiti.

Atgriežoties pie komponentu īpašībām Attēls, mēs varam atzīmēt vienu mūsu testa lietojumprogrammai raksturīgo trūkumu, kas parādīts 4.5. attēlā. Ielādējot dažādus attēlus, lietojumprogrammas loga izmērs var būt vai nu pārāk mazs, un tad jūs redzēsit tikai daļu no attēla vai pārāk lielu, un tad attēls tiks nepievilcīgi novietots formas augšējā kreisajā stūrī, atstājot daudz tukšas vietas. Šo trūkumu var novērst, izmantojot īpašības Augstums(augstums) un Platums(platuma) komponents Attēls. Ar īpašumu AutoSize uzstādīts iekšā taisnība izmēriem Attēls tiek automātiski iestatīti uz tādu pašu izmēru kā augšupielādētais attēls. Un šos izmērus var izmantot, lai attiecīgi mainītu veidlapas izmērus. Piemēram, iepriekšējo kodu attēla ielādei no faila var aizstāt ar šādu:

OpenPictureDialog1. Izpildīt tad

sākt. Bilde. LoadFromFile(.FileName); ClientHeight: = Attēls1. Augstums+10;. Augšā:=1. veidlapa. ClientRect. Tops

+ (Form1. ClientHeight — Image1. Height) div 2;. ClientWidth:=Attēls1. Platums+10;. Pa kreisi: = Form1. ClientRect. Pa kreisi

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

beigas;

Šis kods nosaka veidlapas klienta apgabala lielumu nedaudz lielāku par komponenta lielumu. Attēls1, kas savukārt pielāgojas attēla izmēram, pateicoties īpašumam AutoSize. Veiciet šīs izmaiņas savā lietojumprogrammā, palaidiet to un skatiet, kā veidlapa automātiski pielāgojas augšupielādētā attēla izmēram.

Formas sastāvdaļa

Komponents Forma var tikai nosacīti klasificēt kā grafiskās informācijas attēlošanas līdzekli, jo tas vienkārši attēlo dažādas ģeometriskas formas, atbilstoši iekrāsotas. Šīs sastāvdaļas galvenā īpašība ir Forma(forma), kam var būt šādas vērtības:

Šo formu piemēri ir parādīti 4.7. attēlā

Att.4.7 Komponentu piemēri Forma


Vēl viena būtiska komponenta īpašība ir Ota(ota). Šis īpašums ir tipa objekts TBrush, kam ir vairākas apakšīpašības, jo īpaši: krāsa ( Ota. Krāsa) un stils ( Ota. Stils) aizpildiet formu. Aizpildīšana pēc dažām vērtībām Stils var redzēt 4.7. attēlā. Trešo no komponenta specifiskajām īpašībām Forma - Pildspalva(pildspalva), kas nosaka līnijas stilu. Šis īpašums ir kā īpašums Ota, ir jau apspriesti 4.2. sadaļā . Atsauces datus par šiem īpašumiem varat atrast 10. nodaļā*.

Diagrammas sastāvdaļa

Tagad apskatīsim komponentu Diagramma. Šis komponents ļauj veidot dažādas diagrammas un grafikus, kas izskatās ļoti iespaidīgi (4.8. att.). Komponents Diagramma ir daudz īpašību, metožu, notikumu, tāpēc, ja mēs tos visus apsvērtu, mums tam būtu jāvelta vesela nodaļa. Tāpēc mēs aprobežosimies, ņemot vērā tikai galvenās īpašības Diagramma. Pārējos varat atrast Delphi iebūvētajā palīdzībā vai vienkārši izmēģināt, eksperimentējot ar diagrammām.

Komponents Diagramma ir priekšmetu konteiners sērija veids TChartSeries- datu sērija, ko raksturo dažādi displeja stili. Katrs komponents var ietvert vairākas sērijas. Ja vēlaties attēlot grafiku, katra sērija atbilst vienai diagrammas līknei. Ja vēlaties attēlot diagrammas, dažu veidu diagrammām var būt vairākas dažādas sērijas, kas pārklātas viena virs otras, savukārt citiem (piemēram, sektoru diagrammām) tās, iespējams, izskatīsies neglītas. Tomēr arī šajā gadījumā varat iestatīt vienu komponentu Diagramma vairākas vienu un to pašu datu sērijas ar dažādiem diagrammu veidiem. Pēc tam, katru reizi aktivizējot vienu no tiem, varat nodrošināt lietotājam iespēju izvēlēties diagrammas veidu, kurā tiek parādīti viņu interesējošie dati.

Novietojiet vienu vai divus (ja vēlaties reproducēt 4.8. att.) komponentus Diagramma veidlapā un apskatiet rekvizītus, kas tiek atvērti objektu inspektorā. Šeit ir daži paskaidrojumi par dažiem no tiem.

Nosaka, vai lietotājs izpildes laikā var ritināt novēroto diagrammas daļu, noklikšķinot ar peles labo pogu. Iespējamās vērtības: pmNeviens - ritināšana ir aizliegta, pmHorizontāla, pmVertikāla vai pmAbi - ritināšana ir atļauta attiecīgi tikai horizontālā virzienā, tikai vertikālā virzienā, vai abos virzienos.

Ļauj lietotājam mainīt attēla mērogu izpildes laikā, ar peles kursoru izgriežot diagrammas vai grafika fragmentus (4.8. b att. zemāk parādīts grafika fragmenta apskates brīdis, kas pilnībā parādīts 4.8. a attēlā).

Definē diagrammas nosaukumu.

Definē diagrammas etiķeti. Pēc noklusējuma neviena. Paraksta tekstu nosaka apakšīpašums Teksts.

Nosaka apmali ap diagrammu.

Diagrammas leģenda ir simbolu saraksts.

MarginLeft, MarginRight, MarginTop, Margin Bottom

Kreisās, labās, augšējās un apakšējās piemales vērtības.

BottomAxis, LeftAxis, Right Axis

Šīs īpašības nosaka attiecīgi apakšējās, kreisās un labās ass raksturlielumus. Šo rekvizītu iestatīšana ir lietderīga grafikiem un dažu veidu diagrammām.

LeftWall, BottomWall, BackWall

Šīs īpašības nosaka attiecīgi diagrammas trīsdimensiju displeja apgabala kreisās, apakšējās un aizmugurējās malas raksturlielumus (sk. 4.8. att. a, apakšējo grafiku).

Komponentā parādīto datu sēriju saraksts.

Iespējo vai atspējo 3D diagrammas attēlošanu.

Trīsdimensiju displeja raksturojums.

Trīsdimensiju skala (4.8. att. tas ir diagrammas biezums un grafika joslu platums).


Blakus daudziem no uzskaitītajiem rekvizītiem Objektu inspektorā ir pogas ar elipsēm, kas ļauj izsaukt vienu vai otru diagrammu redaktora lapu - vairāku lapu logu, kas ļauj iestatīt visus diagrammu rekvizītus. Diagrammu redaktoru var izsaukt arī, veicot dubultklikšķi uz komponenta Diagramma vai ar peles labo pogu noklikšķinot uz tā un uznirstošajā izvēlnē atlasot komandu Rediģēt diagrammu.

Ja vēlaties mēģināt reproducēt lietojumprogrammu, kas parādīta 4.8. attēlā, veiciet dubultklikšķi uz augšējā komponenta Diagramma. Jūs tiksit novirzīts uz diagrammas redaktora logu (4.9. att.) uz lapu Diagramma, kurā ir vairākas cilnes. Pirmkārt, jūs interesēs tajā esošā cilne Sērija. Noklikšķiniet uz pogas Pievienot - pievienojiet sēriju. Jūs tiksit novirzīts uz logu (4.10. att.), kurā varēsiet izvēlēties diagrammas vai grafika veidu. Šajā gadījumā atlasiet Sektoru diagramma. Izmantojot cilni Virsraksti, varat iestatīt diagrammas nosaukumu, cilne Leģenda ļauj iestatīt parametrus diagrammas leģendas (simbolu saraksta) attēlošanai vai noņemt to vispār no ekrāna, cilne Panelis nosaka paneļa izskatu kurā diagramma tiek rādīta, cilne 3D sniedz iespēju mainīt diagrammas izskatu: slīpumu, nobīdi, biezumu utt.

Kad strādājat diagrammu redaktorā un esat atlasījis diagrammas veidu, komponentus Diagramma Jūsu veidlapa parāda tās izskatu ar tajā ievadītajiem nosacījumiem (skat. 4.11. att.).

Att.4.10 Diagrammas veida atlase diagrammu redaktorā


Tāpēc jūs uzreiz varat redzēt dažādu opciju piemērošanas rezultātu savai lietojumprogrammai, kas ir ļoti ērti.

Lapa Sērija, kurā ir arī vairākas cilnes, sniedz iespēju sērijai atlasīt papildu displeja opcijas. Jo īpaši sektoru diagrammas cilnē Formāts ir lietderīgi iespējot opciju Circled Pie, kas nodrošinās, ka jebkurā komponenta lielumā Diagramma parādīt diagrammu apļa formā. Cilnē Atzīmes grupas Stils pogas nosaka, kas tiks rakstīts uz etiķetēm, kas saistītas ar atsevišķiem diagrammas segmentiem: Vērtība - vērtība, Procenti - procenti, Iezīme - datu nosaukumi utt. Piemērā 4.8. attēlā ir iespējota poga Procenti, un cilnē Vispārīgi ir iestatīta procentuālā veidne, lai nodrošinātu, ka tiek rādītas tikai veselas vērtības.

Ja vēlaties, varat pievienot šo komponentu Diagramma citu identisku sēriju, noklikšķinot uz pogas Klonēt diagrammas lapas cilnē Sērija un pēc tam šai jaunajai sērijai noklikšķinot uz pogas Mainīt un atlasot citu diagrammas veidu, piemēram, joslu. Protams divas dažādi veidi diagrammas vienā attēlā izskatīsies slikti. Bet jūs varat izslēgt šīs jaunās sērijas indikatoru cilnē Sērija un pēc tam ļaut lietotājam izvēlēties vienu vai citu diagrammas displeja veidu (mēs parādīsim, kā tas tiek darīts tālāk).

Izejiet no diagrammu redaktora, atlasiet lietojumprogrammas apakšējo komponentu Diagramma un atkārtojiet tā iestatīšanas rekvizītus, izmantojot diagrammu redaktoru. Šādā gadījumā jums būs jānorāda divas sērijas, ja vēlaties grafikā parādīt divas līknes, un atlasiet līniju diagrammas veidu. Tā kā mēs runājam par grafikiem, varat izmantot cilnes Asis un Sienas, lai norādītu diagrammas asu un trīsdimensiju malu koordinātu raksturlielumus.

Tādējādi tiek pabeigts lietojumprogrammas izskata dizains. Atliek tikai uzrakstīt kodu, kas norāda datus, kurus vēlaties parādīt. Testa lietojumprogrammai iestatīsim tikai dažus konstantus datus sektoru diagrammā un sinusa un kosinusa funkcijas grafikos.

Lai iestatītu parādītās vērtības, jāizmanto sērijas metodes sērija. Koncentrēsimies tikai uz trim galvenajām metodēm.

Metode Skaidrs notīra iepriekš ievadīto datu sēriju.

Metode Pievienot:

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

ļauj diagrammai pievienot jaunu punktu. Parametrs Vērtība atbilst pievienotajai vērtībai, parametram ALetiķete- nosaukums, kas tiks parādīts diagrammā un leģendā, AKrāsa- krāsa. Parametrs ALetiķete- pēc izvēles, to var iestatīt tukšu: "".

Metode PievienotXY:(Const AXValue, AYValue: dubultā;Aiezīme: virkne; AColor: TColor)

ļauj pievienot jaunu punktu funkciju grafikam. Iespējas AXValue Un AYValue atbilst argumentam un funkcijai. Iespējas ALetiķete Un AKrāsa tāds pats kā metodē Pievienot.

Tādējādi datu ielādes procedūra mūsu piemērā varētu izskatīties šādi:

155;=251;=203;=404;

var: vārds;

sākt Sērija 1 darīt

sākt;(A1, "Workshop 1", cDzeltens);(A2, "Workshop 2", clBlue);(A3, "Workshop 3", clRed);(A4, "Workshop 4", clPurple);

beigas;. Skaidrs;. Skaidrs;

priekš i: =0 uz 100 darīt

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

Ja esat, piemēram, norādījis diagrammā attēlotos datus, divas sērijas Sērija 1 Un Sērija 4 dažādi veidi - Pīrāgs Un Bārs, tad varat ieviest procedūru, kas maina diagrammas veidu atbilstoši lietotāja pieprasījumam. Šo procedūru var ievadīt pasākumā OnClick kādu pogu, izvēlnes komandu vai, piemēram, vienkārši apstrādājot klikšķi uz komponenta Diagramma. Lai ielādētu datus Sērija 4 un padarīt šo diagrammu neredzamu pirmajā brīdī, varat ievietot operatorus iepriekš dotās procedūras beigās

Piešķirt (1. sērija); Aktīvs: =false;

Pirmais no šiem operatoriem pārraksta ievietotos datus Sērija 1, sērijā Sērija 4. Un otrais operators padara sēriju neredzamu Sērija 4. Diagrammas veida maiņa tiek veikta ar procedūru

Aktīvs: = Sērija 1. Aktīvs;. Aktīvs: = Sērija 4. Aktīvs;

Attēlā 4.8 b var redzēt rezultātu, lietotājam pārslēdzoties uz citu diagrammas skatu.

"Grafiskās informācijas parādīšana Delfos"
Tēmas plāns:
1. Grafiskās izvades metodes
informācija Delfos.
2. Parādīt attēlus.
3. Ģeometriskais displejs
figūras.

1. Grafiskās informācijas attēlošanas metodes.
Delfos ir vairāki veidi
grafiskās informācijas izvade:
Iepriekš sagatavota izvade
attēli (attēla komponenti,
Forma);
Grafiku un diagrammu veidošana
(Diagrammas sastāvdaļa utt.);
Attēlveidošana
programmatiski (objekts
Audekls).

2. Parādīt attēlus.
Attēlu parādīšana, izmantojot
Mēs apskatījām attēla komponentu
viena no iepriekšējām tēmām.
Šeit mēs aplūkosim piemēru
vienkāršas animācijas ieviešana
periodiski mainot
parādīts attēls iekšā
Attēla sastāvdaļas.
Pārejiet uz piemēru.


Vienšūņu demonstrēšana
ģeometriskas formas uz formas
nodrošina Shape komponentu.

3. Ģeometrisko formu attēlojums.
Shape komponenta pamatīpašības:
Ota
Pildspalva
Forma
Krāsa (.Color) un stils (.Style) priekš
aizpildot figūru.
Krāsa (.Color), stils (.Style), platums
(.Width) un līniju izvades metode (.Mode).
figūras.
Ģeometriskās figūras veids.

3. Ģeometrisko formu attēlojums.
No vairākiem Shape komponentiem
Jūs varat izveidot vienkāršus zīmējumus.
Programmatiski mainot pozīciju
(.Kreisais, .Augšējais) izmērs (.Platums, .Augstums) un
Shape komponentu krāsa (Brush.Color).
zīmējumā iespējams realizēt
vienkāršas animācijas elementi.
Apsveriet piemēru.

4. Grafiku un diagrammu konstruēšana.
Diagrammas ir paredzētas
vairāk vizuālo attēlojumu
skaitlisko datu masīvi, to
vizuālais attēlojums un analīze.
Piemērs.
Lai izveidotu diagrammas Delfos
ir vairākas sastāvdaļas
viens no tiem ir diagrammas komponents (sadaļa
TeeChart Std).

4. Grafiku un diagrammu konstruēšana.
Diagrammas komponenta skats pēc tā
Veidlapas iestatījumi:

4. Grafiku un diagrammu konstruēšana.
Papildus Objektu inspektoram piekļuve
var būt diagrammas komponenta īpašības
iegūt, atverot īpašu logu
dialoglodziņš (labā poga uz komponenta \
Rediģēt diagrammu...)
Pievienot
datu sērijas
Mainīt veidu
diagrammas

4. Grafiku un diagrammu konstruēšana.
Diagrammas veida izvēle:

4. Grafiku un diagrammu konstruēšana.
Rekvizītu iestatīšana koordinātu asīm
(Ass):

4. Grafiku un diagrammu konstruēšana.
Displeja dati parasti ir
programmatiski pārsūtīts uz diagrammu,
piemērs:
Series1.Clear; (skaidra sērija)
i:=1 līdz N darīt
Series1.addxy(i, A[i], '', clGreen);
Vērtība pēc
X ass
Vērtība pēc
Y ass
Paraksts
X ass
Datu krāsa
uz diagrammas
Apsveriet būvniecības piemēru
funkcijas y = Sin(x) grafiks

Tālāk:
Laboratorijas darbi № 13.1.
"Attēlu un ģeometrisko attēlu parādīšana
figūras, to animācija.
Vingrinājums:
1) Izstrādājiet lietojumprogrammu ieviešanai
vienkāršākā periodiskā animācija
maina parādīto attēlu
Attēla sastāvdaļas. (Attēlu skaits nav
mazāk nekā trīs, atlasiet attēlus
patstāvīgi).

Vingrinājums:
2) Izdomā un uzzīmē attēlu no
Formas sastāvdaļas. Programmatiski
mainot pozīciju, izmēru vai krāsu
Veidojiet komponentus zīmējumā
īstenot elementus vienkāršākais
animācijas.

Tālāk:
Laboratorijas darbs Nr.13.2.
"Grafiku un diagrammu veidošana."
Vingrinājums:
1) Modificēt pieteikumu no
laboratorijas darbs Nr.9 (Displejs
dati tabulā). Pievienojiet iespēju
parāda dažus datus no tabulas
histogrammā vai sektoru diagrammā.
2) Izveidojiet dotās funkcijas grafiku.


Tops