Delphida grafik ma'lumotlarni ko'rsatish uchun komponent. "Delphida grafik ma'lumotlarni ko'rsatish" mavzusidagi taqdimot. Nazariyadan qisqacha ma'lumot

Grafika bilan ishlash Delphida bu nafaqat chiziqlar va chizmalar, balki chop etish hamdir matnli hujjatlar. Shuning uchun ichida Delphi ishda grafika bilan bir oz vaqt sarflashingiz kerak. Bilan ishlash Delphida grafika tuvalga kirishni o'z ichiga oladi - komponentlarning Canvas xususiyati. Kanvas Delphi Bu dasturchiga uning har bir nuqtasiga (piksellariga) kirishga imkon beruvchi tuvaldir va rassom kabi, talab qilinadigan narsalarni ko'rsatish. Albatta, uchun piksel piksel chizish grafikalar bilan ishlash Delphida kerak emas, Delphi tizimi kuchli ta'minlaydi grafik vositalari, dasturchining vazifasini osonlashtiradi.

Delphida grafikalar bilan ishlashda dasturchi o'z ixtiyorida konturga ega (kanvas, tuval - mulk). Tuval Delphi komponentlari), qalam (xususiyat Qalam), siz bo'yashingiz kerak bo'lgan komponent yoki ob'ektning cho'tkasi (Brush xususiyati). Qalamda Qalam va cho'tkalar Cho'tkasi rangni (Color xususiyati) va uslubni (Style xususiyati) o'zgartirishingiz mumkin. Shriftlarga kirish tuval xususiyati bilan ta'minlanadi Shrift. Ushbu vositalar sizga matematik va muhandislik mazmunining matn va juda murakkab grafiklarini, shuningdek chizmalarni ko'rsatishga imkon beradi. Bundan tashqari, grafikalar bilan ishlash Delphida bunday resurslardan foydalanish imkonini beradi Windows grafik va video fayllar kabi.

Albatta, Delphidagi barcha komponentlar ham bunday xususiyatlarga ega emas. Yorliqda Qo'shimcha maxsus komponent joylashgan TIME tasviri, ayniqsa, chizish uchun mo'ljallangan, balki mulk Tuval masalan, ListBox, ComboBox, StringGrid kabi komponentlarga, shuningdek, komponentlarimizni joylashtiradigan Formaning o'ziga ega! Bundan tashqari, hujjatlarni chop etish uchun Delphi printer kabi ob'ektning Canvas xususiyatiga kiradi.

Canvas Delphi kabi ob'ektning asosiy xususiyati hisoblanadi Piksellar turi TColor, ya'ni ularning rangi bilan belgilangan ikki o'lchovli nuqtalar (piksellar) massividir. Tuvalga rasm chizish tuvalning istalgan nuqtasiga ma'lum rangni belgilash paytida sodir bo'ladi. Har bir piksel uchun mavjud bo'lgan har qanday piksel tayinlanishi mumkin Windows rangi. Masalan, bayonotni bajarish

Image1.Canvas.Pixels:=clRed;

Natijada koordinatalar bilan qizil nuqta chiziladi. Siz piksel rangini teskari belgilash orqali bilib olishingiz mumkin:

Rang:=Image1.Canvas.Pixels;

Turi TColor uzun butun son (LongInt) sifatida aniqlanadi. Uning to'rt baytida ko'k (B), yashil (G) va qizil (R) ranglarning nisbati haqida ma'lumot mavjud. O'n oltilik tizimda Bu shunday ko'rinadi: $00BBGGRR. Har bir rangning nisbati 0 dan 255 gacha o'zgarishi mumkin. Shuning uchun maksimal qizil nuqtani ko'rsatish uchun uni belgilash kerak. rang $000000FF.
Delphida standart ranglar uchun matn konstantalari to'plami aniqlanadi. Buni, masalan, Ob'ektlar inspektoridagi bir xil formaning Rang xususiyatini ochish orqali ko'rishingiz mumkin.

Quyidagi jadvalda ba'zi tuval xususiyatlari va usullari mavjud:

Protsedura TextOut(X, Y: Butun son; const Matn: WideString);
String chiqishini ishlab chiqaradi Matn(X, Y) dan boshlab - matnning yuqori chap pikseli.
Xususiyat TextWidth( var Matn: String): Integer;
Ip uzunligini o'z ichiga oladi Matn piksellarda.
Xususiyat TextHeight( var Matn: String): Integer;
Chiziq balandligini o'z ichiga oladi Matn piksellarda.
Protsedura MoveTo(X, Y: Butun son);
Joyni manzil (X, Y) bilan pikselga o'tkazadi.
Protsedura LineTo(X, Y: Integer);
Joriy joylashuv nuqtasidan (X, Y) manzilli pikselga to'g'ri chiziq chizadi. Manzil (X, Y) joriy pozitsiyaning nuqtasiga aylanadi.
FillRect protsedurasi( const To'g'ri: TRect);
To'rtburchakni to'ldiradi Rect joriy cho'tka yordamida tuvalda. Tuvaldagi tasvirning bir qismini o'chirish uchun boshqa narsalar qatorida foydalanish mumkin.

Keling, faqat ushbu kanvas usullaridan foydalangan holda, komponent tuvalidagi rasm uchun dastur yozamiz Rasm komponentga kiritilgan matn Eslatma:

Biz qiladigan birinchi narsa dastur boshlanganda o'zgaruvchilarni ishga tushirishdir. Chizma maydonining o'lchamini aniqlash kerak (biz buning uchun TRect tipidagi global o'zgaruvchini yaratamiz) va fon rangini o'rnating. Rasm oq:

tartib TForm1.FormCreate(Sender: TObject);
boshlanishi
Chap to'g'ri:=0;
Rect.Top:=0;
Rect.Right:=Image1.Width;
Rect.Bottom:=Image1.Height;
Image1.Canvas.Brush.Color:=clWhite;
oxiri;

Keyin rasmning yon tomonlariga ramka chizing:

tartib TForm1.page;
boshlanishi
bilan Tasvir 1. Kanvas qilmoq
boshlanishi
MoveTo(0, 0);
LineTo(Image1.Width-1, 0);
LineTo(Image1.Width-1, Image1.Height-1);
LineTo(0, Image1.Height-1);
LineTo(0, 0);
oxiri;
oxiri;

Keling, nima bo'lganini sinab ko'raylik. Hammasi ishlaydi, lekin ramka hali ko'rsatilmagan. Shuning uchun, keling, protsedura qo'shamiz sahifa tartibda FormCreate. Endi chiroyli. Keyinchalik yozamiz oddiy protsedura o'chirish, tasvirni tozalash. Har qanday tasvirni yangilashdan oldin uni chaqirish kerak bo'ladi, aks holda oldingi va keyingi tasvirlar bir-biriga mos keladi.

tartib TForm1.clearing;
boshlanishi
Image1.Canvas.FillRect(Rect); //To'rtburchak Rect oq rang bilan to'ldiriladi va tasvir o'chiriladi.
oxiri;

Endi navbat matnni chiqarish protsedurasining o'zi. Matnni chizishni (3, 3) nuqtadan boshlaylik - varaqning yuqori chap burchagida, 3 pikseldan bir oz chekinish. Har bir keyingi satr satr balandligi bo'yicha ofset qilinadi:

tartib TForm1.prn;
var i: butun son;
boshlanishi
bilan Tasvir 1. Kanvas qilmoq
uchun i:=1 uchun Memo1.Lines.Count qilmoq
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
oxiri;

Endi hamma narsa matnni chiqarishga tayyor. Buni OnChange hodisasi yordamida qilamiz:

tartib TForm1.Memo1Change(Sender: TObject);
boshlanishi
tozalash;
prn;
sahifa;
oxiri;

Va nihoyat, shrift hajmini o'zgartirish tartibi:

tartib TForm1.Edit1Change(Sender: TObject);
boshlanishi
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(Yuborish);
oxiri;

Siz ushbu dasturni matnni chop etish uchun o'zgartirishingiz mumkin. Printer bilan ishlash uchun modulni ulashingiz kerak Printerlar:

birlik 1-birlik;

Interfeys

foydalanadi
Windows, Xabarlar, SysUtils, Variantlar, Sinflar, Grafika, Boshqaruv elementlari, Shakllar,
Dialoglar, StdCtrls, Printerlar ;

Printer bilan kanvas sifatida ishlaganda, chop etishni boshlash uchun usul chaqiriladi BeginDoc, keyin hujjat chiqariladi, usulni chaqirish orqali chop etish tugallanadi EndDoc:

Printer.BeginDoc;
bilan Printer. Kanvas qilmoq
boshlanishi
...Hujjatni chop etish...
oxiri;
Printer.EndDoc;

Printer tarmog'ining kengligi va balandligi xususiyatlar orqali mavjud Printer.PageWidth Va Printer.PageHeight. Usul yordamida bir sahifada chop etishni tugatishingiz va boshqa sahifada chop etishni boshlashingiz mumkin Printer.NewPage.

Ko'rsatish komponentlari ro'yxati grafik ma'lumotlar

Grafik ma'lumotlarni ko'rsatish uchun Delphi kutubxonasi komponentlarni taqdim etadi, ularning ro'yxati 4.1-jadvalda keltirilgan.

4.1-jadval Grafik ma'lumotni ko'rsatish komponentlari Piktogramma

Komponent

Sahifa

Tavsif

Rasm

Grafiklarni ko'rsatish uchun ishlatiladi: piktogrammalar, bitmaplar va metafayllar.


PaintBox (chizish uchun oyna)

Shaklda chizishingiz mumkin bo'lgan ba'zi maydonlarni yaratish uchun foydalaniladi.


DrawGrid (chizmalar jadvali)

Matn bo'lmagan ma'lumotlarni satr va ustunlarda ko'rsatish uchun foydalaniladi.


Diagramma (diagramma va grafiklar)

Komponent TChart komponentlar turkumiga kiradi, ular diagramma va grafiklarni yaratish uchun ishlatiladi.


Bundan tashqari, siz Canvasdagi istalgan Displey grafikasi yuzasida grafik ma'lumotlarni ko'rsatishingiz va kiritishingiz mumkin.

Tuval Tuval komponent emas, shuning uchun qat'iy aytganda, uni ushbu kitob doirasida ko'rib chiqmaslik kerak. Ammo ko'pgina komponentlar, xususan, shakllar konturga ega bo'lganligi va kontur turli xil grafik ma'lumotlarni ko'rsatish imkoniyatini ta'minlaganligi sababli, kontur haqida dastlabki ma'lumotlarni berish tavsiya etiladi.

Tuval - bu siz tayyor tasvirlarni chizishingiz yoki ko'rsatishingiz mumkin bo'lgan komponentning maydoni. Unda Delphi grafikasini ancha soddalashtiradigan xossalar va usullar mavjud. Tizim bilan barcha murakkab o'zaro aloqalar foydalanuvchi uchun yashirin, shuning uchun kompyuter grafikasi bo'yicha umuman tajribaga ega bo'lmagan odam Delphida rasm chizishi mumkin.

Konturning har bir nuqtasi koordinatalariga ega X Va Y. Tuval koordinatalari tizimi, Delphining boshqa joylarida bo'lgani kabi, tuvalning yuqori chap burchagidan kelib chiqadi. Koordinata X chapdan o'ngga harakat qilganda ortadi va koordinata Y- yuqoridan pastgacha harakatlanayotganda. Koordinatalar piksellarda o'lchanadi. Piksel - bu dizayn sirtining boshqarilishi mumkin bo'lgan eng kichik elementi. Pikselning eng muhim xususiyati uning rangidir.

Tuvalning mulki bor Piksellar. Bu xususiyat tuval ranglari uchun mas'ul bo'lgan ikki o'lchovli massivdir. Masalan, Tuval. Piksellar chapdan 10-chi va tepadan 20-chi piksel rangiga mos keladi. Siz piksellar massivini har qanday xususiyat kabi ko'rib chiqishingiz mumkin: pikselga yangi qiymat berish orqali rangni o'zgartiring yoki uning rangini unda saqlangan qiymatdan aniqlang. Masalan, Tuval. Piksel:=0 yoki Tuval. Piksel:=clQora- bu pikselni qora rangga o'rnatish.

Mulk Piksellar tuvalga chizish uchun ishlatilishi mumkin. Shaklning konturiga sinusoidning piksel-piksel grafigini chizishga harakat qilaylik. Buni amalga oshirish uchun, shakl hodisasi ishlov beruvchisida OnPaint(chizma) quyidagi kodni kiritishingiz mumkin:

TForm1. FormPaint (Yuborishchi: TObject);

var,Y:haqiqiy; // funktsiya koordinatalari,PY: longint; // piksel koordinatalari

boshlanishi:=clWhite;

uchun PX:=0 uchun ClientWidth qilmoq

(X - grafik argumenti,

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

(PY - piksel koordinatasi,

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

(Tanlangan rangni o'rnatadi

piksel (yorqinlik haqida). Piksel: = 0;

oxiri;

Ushbu test ilovasini ishga tushiring va siz 4.1-rasm a da ko'rsatilgan natijani ko'rasiz. Sinus to'lqin grafigi juda yaxshi bo'lmasa ham, chiqdi, chunki alohida nuqtalarga - piksellarga bo'linadi.

Canvas - sinf ob'ekti TCanvas xossasidan foydalanib grafiklar, chiziqlar, shakllar chizish imkonini beruvchi ko‘plab usullarga ega Qalam- pat. Bu xususiyat ob'ekt bo'lib, u o'z navbatida bir qator xususiyatlarga ega. Ulardan biri siz allaqachon bilgan mulkdir Rang- chizma qo'llaniladigan rang. Ikkinchi mulk - Kengligi(chiziq kengligi). Kenglik piksellarda ko'rsatilgan. Standart kenglik 1 ga teng.

Mulk Uslub chiziq turini belgilaydi. Bu xususiyat quyidagi qiymatlarni olishi mumkin:

Tuvalning mulki bor PenPos turi TPoint(sm .). Bu xususiyat qalamning tuval koordinatalaridagi joriy holatini aniqlaydi. Qalamni chiziq chizmasdan harakatlantirish, ya'ni. o'zgartirish PenPos, kanvas usuli bilan ishlab chiqarilgan MoveTo(X,Y). Bu yerga ( X, Y) - qalam harakatlanadigan nuqtaning koordinatalari. Ushbu joriy nuqta boshlang'ich nuqtaga aylanadi, undan usul LineTo(X,Y) siz koordinatali nuqtaga chiziq chizishingiz mumkin ( X, Y). Bunday holda, joriy nuqta chiziqning oxirgi nuqtasiga va yangi chaqiruvga o'tadi LineTo bu yangi joriy nuqtadan nuqta chizadi.

Oldingi misoldagi sinus grafigini qalam bilan chizishga harakat qilaylik. Bunday holda, shakl hodisasi ishlov beruvchisi OnPaint quyidagicha ko'rinishi mumkin:

tartib TForm1. FormPaint (Yuborishchi: TObject);

var,Y:haqiqiy; // funktsiya koordinatalari,PY: longint; // piksel koordinatalari

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

uchun PX: =0 uchun ClientWidth qilmoq

(X - grafik argumenti,

koordinatasi RP bo'lgan pikselga to'g'ri keladi):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - piksel koordinatasi,

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

(Grafikda chiziq chizilgan). LineTo (PX, PY);

Ilovaning natijasini ushbu versiyada 4.1 b-rasmda ko'rishingiz mumkin. Ko'rib turganingizdek, grafika sifati sezilarli darajada yaxshilandi.

Qalam nafaqat tekis chiziqlarni, balki shakllarni ham chizishi mumkin. Qalam ishlatadigan kanvas usullarining to'liq ro'yxati uchun Delphi-ning o'rnatilgan yordamiga qarang. Hozircha, misol sifatida biz ulardan faqat bittasini keltiramiz - Ellips, bu ellips yoki doira chizadi. Sifatida e'lon qilinadi

tartib Ellips(X1, Y1, X2, Y2: Butun son);

parametrlar qayerda X1, X2, Y1, Y2 ellips yoki aylana tasvirlangan to'rtburchakning koordinatalarini aniqlang. Masalan, operator

Ellips(10, 40, 20, 50);

diametri 10 va markaz koordinatalari (15, 45) bo'lgan doira chizadi.

Umumiy holda, raqamlar bo'sh emas, balki tuval xususiyatidan foydalangan holda to'ldiriladi Cho'tkasi- cho'tka. Mulk Cho'tkasi ob'ekt bo'lib, u o'z navbatida bir qator xususiyatlarga ega. Mulk Rang to'ldirish rangini belgilaydi. Mulk Uslub to'ldirish naqshini (soyani) belgilaydi. Standart qiymat Uslub teng bsSolid, bu qattiq rang berishni anglatadi Rang.

Qalamda Qalam Biz hali ko'rib chiqmagan yana bir mulk bor. Bu mulk Rejim(rejim). Standart qiymat Rejim = pmCopy. Bu shuni anglatadiki, chiziqlar xususiyatda ko'rsatilgan rang bilan chizilgan Rang. Ammo boshqa rejimlar ham mumkin, ularda nafaqat rang hisobga olinadi Rang, balki mos keladigan fon piksellarining rangi ham. Ushbu rejimlarning eng qiziqarlisi pmNotXor- teskari eksklyuziv OR yordamida fon bilan qo'shish. Agar ushbu rejim o'rnatilgan bo'lsa, xuddi shu rasmni tuvalning o'sha joyiga yana chizish ilgari chizilgan rasmni olib tashlaydi va rasmning birinchi tasviridan oldingi piksel ranglarini tiklaydi.

Ushbu rejimning xususiyati pmNotXor oddiy animatsiyalarni yaratish uchun foydalanish mumkin. Biror narsani chizish kifoya, keyin chizgan narsangizni o'chiring, uni biroz o'zgartiring - va chizilgan hayotga o'xshaydi.

Oddiy animatsiyani o'zingiz yaratishga harakat qiling - harakatlanuvchi doira. Yangi dasturni ishga tushiring va o'ting amalga oshirish reklama kiritish

X,Y: butun son;

Bu global o'zgaruvchilarni joriy qiladi X Va Y- joriy tasvir koordinatalari.

Shakl hodisasida OnPaint bayonotlarni kiriting

Cho'tkasi. Rang:=clWhite;:=clWhite;. Qalam. Rejim:=pmNotXor;

Ushbu operatorlarning birinchisi cho'tka rangini oq rangga o'rnatadi Cho'tkasi. Bu sizning doirangiz ichida oq rangga bo'yalganligini anglatadi. Ikkinchi operator shakl yuzasining fon rangini oq rangga o'rnatadi.

Uchinchi operator qalam rejimini o'rnatadi pmNotXor, bu sizga yangisini chizishdan oldin eski rasmni o'chirish imkonini beradi.

Hatto eng oddiy animatsiya ham sinxronlashtirishni talab qiladi. Aks holda, harakat tezligi kompyuterning tezligi bilan belgilanadi. Shuning uchun komponentni shaklga o'tkazing Taymer- Tizim sahifasidan taymer. Ushbu komponent 5.7-bo'limda tasvirlangan .

U yerda tomosha qilishingiz mumkin batafsil tavsif. Hozircha uning xususiyatini belgilang Interval masalan, 30 ga teng (bu ekspozitsiya vaqti millisekundlarda, lekin haqiqiy vaqt tortishish tezligi uzoqroq bo'ladi - 5.7 bo'limiga qarang) va xususiyatni o'rnating Yoqilgan teng yolg'on(bu dastur ishga tushirilganda taymer avtomatik ravishda ishga tushmasligini bildiradi).

Ushbu komponentning hodisa ishlovchisida OnTimer bayonotlarni kiriting

// Oldingi rasmni o'chirish. Ellips (X-5, Y, X+5, Y-1Q);(X);

// Yangi rasm chizish. Ellips (X-5, Y, X+5, Y-10);

// Shakl oxiriga yetganda to'xtating

agar(X >= ClientWidth-20) keyin. Yoqilgan: = noto'g'ri;

Ushbu operatorlarning birinchisi ilgari chizilgan joyda aylana chizadi, ya'ni. oldingi rasmni o'chiradi.

Oxirgi operator shaklning chetida tasvirni to'xtatadi.

Endi formaga tugma qo'shing Tugma va operatorlarni bosish moslamasiga joylashtiring

X: =10;: =100;. Ellips (X-5, Y, X+5, Y-10); Yoqilgan: =true;

Birinchi ikkita operator aylananing boshlang'ich koordinatalarini belgilaydi. Uchinchi operator aylanani boshlang'ich joyida chizadi va to'rtinchi operator taymerni ishga tushiradi.

Ilovani efirga uzating, uni ishga tushiring, tugmani bosing. Shakl bo'ylab chapdan o'ngga harakatlanadigan doira tasvirini ko'rasiz. Va keyin o'z tasavvuringizni ishlating va bu unchalik qiziq bo'lmagan ilovani yanada qiziqarli narsaga aylantiring.

Tuval nafaqat dastur asosida yaratilgan tasvirlarni, balki grafik fayllarda saqlangan tasvirlarni ham ko'rsatishi mumkin. Faqat tuvalning o'zida fayldan rasmni yuklash usuli yo'q. Shuning uchun faylni grafik fayllardan ma'lumot olishi mumkin bo'lgan boshqa grafik ob'ektga yuklash kerak. Va keyin tuval usuli yordamida ushbu ob'ektdan rasmni tuvalga qayta yozing Chizish. Uning tavsifi:

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

Mana parametrlar X Va Y tasvirni tuvalga joylashtirishning yuqori chap burchagining koordinatalarini aniqlash, a Grafika- axborotni saqlaydigan ob'ekt. Bunday ob'ekt, masalan, turdagi ob'ekt bo'lishi mumkin TBitMap, bit matritsalarini saqlash uchun mo'ljallangan. Keling, bularning barchasi amalda qanday ko'rinishini ko'rib chiqaylik.

Yangi ilovani oching, komponentni shaklga torting OpenPictureDialog Dialoglar sahifasidan (bu grafik fayllarni ochish uchun dialog oynasining komponenti - 8.2. bo'limga qarang ) va tugma Tugma. Joy OpenPictureDialog shaklning istalgan joyida, chunki bu komponent vizual bo'lmagan va tugmani shaklning pastki qismiga qo'ying. Tugmani bosish moslamasiga quyidagi kodni qo'shing:

tartib TForm1. Button1Click(Yuborish: TObject);

var: TBitMap;

// Foydalanuvchi tanlash grafik fayl

agar OpenPictureDialog1. Bajarish keyin

// TBitMap tipidagi BitMap obyektini yarating: =TBitMap. Yaratmoq;

// Rasmni forma tuvaliga o'tkazing. Draw(10, 10, BitMap);

//BitMap ob'ektini yo'q qilish. Ozod;

oxiri;

Ushbu kod vaqtinchalik turdagi ob'ektni yaratadi TBitMap Nomi bilan BitMap. Keyin grafik faylni ochish uchun dialog oynasi chaqiriladi OpenPictureDialog1 va agar foydalanuvchi faylni tanlagan bo'lsa, u yuklab olinadi BitMap usul LoadFromFile. Keyin usuldan foydalaning Chizish yuklangan tasvir yuqori chap burchak (10,10) koordinatalari bo'lgan hududdagi tuvalga ko'chiriladi. Shundan so'ng vaqtinchalik ob'ekt BitMap vayron qilingan.

Ilovangizni ishga tushiring va uning tugmasini bosing. Siz har qanday turdagi grafik faylni yuklashingiz mumkinligini ko'rasiz. bmp va u shaklning konturida ko'rsatiladi (4.2 a rasmga qarang). Grafik fayllarni Images katalogida topishingiz mumkin. Delphi 5 va 4 da u odatda katalogda joylashgan. \dastur fayllari\Common Files\Borland Shared. Delphi 3 da u katalogda joylashgan. \dastur fayllari\Borland\Delphi 3 va Delphi 1da - Delphi 16 katalogida.Rasmlar katalogida, xususan, rasmdagi misolda yuklangan faylni saqlaydigan \Images\Splash\16Color\ pastki katalogi mavjud. 4.2

Siz grafik fayllarni ko'rish uchun yaxshi dastur yaratdingiz. Ammo endi uning asosiy kamchiligini ko'rishga harakat qilaylik. Ilovangizni yopmasdan, boshqa dasturga o'ting, masalan, Delphi-ga qayting. Keyin, u erda hech narsa qilmasdan, ishlaydigan ilovangizga qayting. Agar siz kirgan dastur oynasi ilovangiz oynasini to'liq bloklagan bo'lsa, unga qaytganingizda oynadagi rasm yo'qolganini ko'rasiz. Agar ilova oynangiz faqat qisman ustma-ust tushgan bo'lsa, ilovangizga qaytganingizda, 4.2 b-rasmda ko'rsatilgan natijani ko'rishingiz mumkin.

Ko'ryapsizmi, agar boshqa ilovaning oynasi vaqtincha sizning ilovangiz oynasiga to'g'ri kelsa, u holda shakl konturida chizilgan rasm buzilgan. Keling, ushbu kamchilikni qanday bartaraf etishni ko'rib chiqaylik.

Agar oyna yopilgan bo'lsa va tasvir buzilgan bo'lsa, operatsion tizim ilovaga muhitda biror narsa o'zgarganligi va dastur tegishli choralar ko'rishi kerakligini aytadi. Oynani yangilash talab qilinishi bilanoq, u uchun hodisa yaratiladi OnPaint. Ushbu hodisaning ishlov beruvchisida (bizning holatda, shakl hodisasi) siz tasvirni qayta chizishingiz kerak.

Qayta chizish amalga oshirilishi mumkin turli yo'llar bilan ilovaga qarab. Bizning misolimizda o'zgaruvchini e'lon qilish mumkin edi BitMap(operator var BitMap: TBitMap) yuqoridagi protseduradan tashqari, ya'ni. bu o'zgaruvchini to'g'ridan-to'g'ri bo'limga joylashtirish orqali global qiling amalga oshirish. Operator BitMap. Ozod shakl hodisasi ishlov beruvchisiga koʻchirilishi mumkin OnDestroy, bu dastur yopilganda sodir bo'ladi. Keyin ilovangizning butun bajarilishi davomida siz komponentdagi rasmning nusxasiga ega bo'lasiz BitMap va siz shunchaki voqea ishlov beruvchisiga kirishingiz kerak OnPaint formada faqat bitta operator mavjud:

Draw(10, 10, BitMap);

Buni bajaring va siz oynalarning bir-birining ustiga chiqishi tufayli shakldagi rasm buzilmasligini ko'rasiz.

Ko'rib chiqilgan usulga qo'shimcha ravishda Chizish konturda nusxa ko'chirish usuli ham mavjud CopyRect:

CopyRect(Maqsad: TRect; Tuval: TCanvas; Manba: TRect);

Usul belgilangan parametrni nusxalaydi Manba tasvir manbai tuvalidagi tasvir maydoni Tuval belgilangan parametrga Maqsad bu tuvalning maydoni. Turi TRect, to'rtburchaklar maydonlarni tavsiflovchi Manba Va Maqsad, 3.2-bo'limda allaqachon tasvirlangan .

Masalan, operator

CopyRect(MyRect2, Bitmap. Canvas, MyRect1);

hududdagi shakl konturiga nusxa ko'chiradi MyRect2 hududdan olingan tasvir MyRect1 komponentli tuval Bitmap.

Nusxa olish usuli CopyRect mulk tomonidan belgilangan rejimda amalga oshiriladi Nusxa olish rejimi. Odatiy bo'lib, bu xususiyat qiymatga ega cmSrcCopy, bu shunchaki hududda ilgari mavjud bo'lgan tasvirni almashtirishni anglatadi Maqsad, nusxa olingan rasmga. Boshqa mumkin bo'lgan qiymatlar Nusxa olish rejimi tasvirlarni birlashtirishga imkon beradi, lekin ularni ko'rib chiqish ushbu kitob doirasidan tashqarida.

Tuvalda grafik ma'lumotni ko'rsatish haqidagi ushbu asosiy ma'lumotlar bilan cheklanamiz. 3.2-bo'limda matnning konturga chiqishi haqida ma'lumot berildi. Umuman olganda, kontur - murakkab ob'ekt, bu yana ko'plab xususiyatlar va usullarga ega. Ammo bu ushbu kitob doirasidan tashqarida kengroq muhokama qilishni talab qiladi. All About Delphi turkumidagi navbatdagi kitobda bu masalalar batafsilroq o‘rganiladi.

Xususiyatga ega oyna komponenti Tuval- kanvas.

Image va PaintBox komponentlari

Komponentlar Rasm Va PaintBox 4.2-bo'limda tasvirlanganidek, tasvirlar yozilishi mumkin bo'lgan tuval bilan cheklangan sirtni ifodalaydi . Bunday holda, komponent PaintBox, qat'iy aytganda, tuvaldagi shaklni chizish bilan solishtirganda yangi hech narsa bermaydi. Chizish PaintBox shakl o'rniga, u deraza hududida bir yoki bir nechta chizmalarni joylashtirishda biroz yengillikdan tashqari, hech qanday afzalliklarga ega emas.

Ammo bu qobiliyatlarga qo'shimcha ravishda, komponent Rasm U bilan ishlashga imkon beruvchi xususiyatlar mavjud har xil turlari grafik fayllar.Uch turdagi fayllarni qo'llab-quvvatlaydi - bit matritsalari, piktogrammalar va metafayllar. Barcha uchta fayl turi tasvirlarni saqlaydi; farq faqat ularni fayllar ichida saqlash usulida va ularga kirish vositalarida. Bit matritsasi (kengaytmali fayl . bmp) tasvirdagi har bir pikselning rangini ko'rsatadi. Bunday holda, ma'lumotlar shunday saqlanadiki, har qanday kompyuter tasvirni uning konfiguratsiyasiga mos keladigan ruxsat va ranglar soni bilan ko'rsatishi mumkin.

Piktogrammalar (kengaytmali fayllar . ico) kichik bitli matritsalardir. Ular dastur piktogrammalarini, tezkor tugmachalarda, menyu elementlarida, turli ro'yxatlarda belgilash uchun keng qo'llaniladi. Belgilardagi tasvirlarni saqlash usuli ma'lumotni bit matritsalarida saqlashga o'xshaydi, ammo farqlar ham mavjud. Xususan, ikonkani masshtablashtirib bo'lmaydi, u yaratilgan o'lcham bo'lib qoladi.

Metafayllar tasvirni tashkil etuvchi bitlar ketma-ketligini saqlamaydi, balki tasvir qanday yaratilganligi haqidagi ma'lumotlarni saqlaydi. Ular rasmni qayta yaratishda takrorlanishi mumkin bo'lgan chizish buyruqlarining ketma-ketligini saqlaydi. Bu odatda bunday fayllarni bit matritsalariga qaraganda ixchamroq qiladi.

Komponent Rasm barcha ko'rsatilgan turdagi grafik fayllardagi ma'lumotlarni ko'rsatishga imkon beradi. Bunga uning mulki orqali erishiladi Rasm- ob'ektni yozing TPrasm.

4.3-rasm Rasm muharriri oynasi


Ushbu xususiyat bilan tanishish uchun yangi ilovani oching va komponentni shaklga torting Rasm. Uni cho'zing yoki uning xususiyatini o'rnating Hizalamoq teng alClient Shunday qilib, u shaklning butun mijoz maydonini egallaydi. Mulk yonidagi ellipsli tugmani bosing Rasm Ob'ekt inspektori oynasida yoki shunchaki ikki marta bosing Rasm. Oldingizda rasm muharriri oynasi ochiladi (4.3-rasm), mulkka yuklash imkonini beradi. Rasm ba'zi bir grafik faylni (Yuklash tugmasi), shuningdek, ochiq faylni yangi nom yoki yangi katalogda saqlang. Grafik faylni yuklash uchun Yuklash tugmasini bosing. Siz grafik faylni ochish oynasini ko'rasiz, 4.4-rasmda ko'rsatilgan grafik fayllar ro'yxatida kursorni harakatlantirganda, ulardagi rasmlar o'ng oynada ko'rsatiladi va ularning tepasida rasm hajmini tavsiflovchi raqamlar mavjud. . Sizga kerak bo'lgan har qanday turdagi grafik faylni tanlashingiz mumkin. Eslatib o'tamiz, Delphi bilan ta'minlangan grafik fayllarni Images katalogida topishingiz mumkin. Delphi 5 va 4 da u odatda katalogda joylashgan. \dastur fayllari\Common Files\Borland Shared. Delphi 3 da u katalogda joylashgan. \dastur fayllari\Borland\Delphi 3 va Delphi 1da - Delphi 16 katalogida.Fayl yuklangandan so'ng Picture Editor oynasida va komponentingizda OK tugmasini bosing. Rasm Siz tanlagan rasm ko'rsatiladi. Siz ilovangizni ishga tushirishingiz va unga qoyil qolishingiz mumkin. Biroq, siz allaqachon dasturni ishga tushirmasdan rasmni ko'rasiz.

Dizayn jarayonida fayldan tasvirni komponentga yuklaganingizda Rasm, u nafaqat uni ko'rsatadi, balki ilovada ham saqlaydi. Bu sizga ilovangizni alohida grafik faylsiz yetkazib berish imkoniyatini beradi. Biroq, keyinroq ko'rib chiqamiz, ichida Rasm Ilova ishlayotgan vaqtda tashqi grafik fayllarni ham yuklashingiz mumkin.

Keling, komponent xususiyatlarini ko'rib chiqishga qaytaylik Rasm.

Agar siz mulkni o'rnatsangiz Avtomatik o'lcham V rost, keyin komponent hajmi Rasm unga qo'yilgan rasmning o'lchamiga avtomatik ravishda moslashadi. Agar mulk Avtomatik o'lcham ichida o'rnatilgan yolg'on, keyin tasvir komponentga mos kelmasligi yoki aksincha, komponentning maydoni tasvir maydonidan ancha katta bo'lishi mumkin.

Boshqa mulk - Stretch komponentni rasmning o'lchamiga emas, balki rasmni komponentning o'lchamiga moslashtirishga imkon beradi. O'rnatish Avtomatik o'lcham V yolg'on, komponentning o'lchamini cho'zing yoki kichraytiring Rasm va o'rnating Stretch V rost. Siz chizma komponentning butun maydonini egallashini ko'rasiz, ammo o'lchamlarni aniq aniqlash dargumon. Rasm rasmning o'lchamiga to'liq proportsional bo'lsa, tasvir buziladi. O'rnatish Stretch V rost faqat ba'zi naqshlar uchun mantiqiy bo'lishi mumkin, lekin rasmlar uchun emas. Mulk Stretch hajmini o'zgartirib bo'lmaydigan piktogramma tasvirlariga ta'sir qilmaydi.

Mulk - Markaz, sozlang rost, tasvirni maydonga markazlashtiradi Rasm, agar komponent o'lchami rasm o'lchamidan kattaroq bo'lsa.

Keling, yana bir mulkni ko'rib chiqaylik - Shaffof(shaffoflik). Agar Shaffof teng rost, keyin rasm ichkariga kiradi Rasm shaffof bo'ladi. Bu tasvirlarni bir-birining ustiga qo'yish uchun ishlatilishi mumkin. Shaklga ikkinchi komponentni joylashtiring Rasm va unga boshqa rasmni yuklang. Faqat siyrak to'ldirilgan, konturli rasm olishga harakat qiling. Siz, masalan, odatda tugmachalarga joylashtirilganlar orasidan rasmga olishingiz mumkin, masalan, o'q (fayl.\dastur fayllari\umumiy fayllar\borland shared\images\buttons\arrow1l. bmp). O'zingiznikini siljiting Rasm shunday qilib, ular bir-birining ustiga, va yuqori komponentlar to'plamida Shaffof teng rost. Yuqoridagi rasm endi pastki qismini to'sib qo'ymasligini ko'rasiz. Ushbu xususiyatdan foydalanishning mumkin bo'lgan usullaridan biri bit matritsasi ko'rinishidagi rasmga yozuvlarni qo'shishdir. Bu yozuvlarni Delphida o'rnatilgan Image Editor dasturi yordamida bajarish mumkin.

E'tibor bering, mulk Shaffof faqat bit matritsalariga ta'sir qiladi. Bunday holda, bit matritsasining pastki chap pikselining rangi sukut bo'yicha shaffof bo'ladi (ya'ni, uning ostida joylashgan rasmning rangi bilan almashtiriladi).

Dizayn jarayonida fayldan rasm yuklashni ko'rib chiqdik. Ammo mulk Rasm Shuningdek, u dasturni bajarish jarayonida istalgan turdagi grafik fayllar bilan almashishni tashkil qilishni osonlashtiradi. Bunday almashish texnikasini tushuntirish uchun biz birinchi navbatda mulkni batafsilroq ko'rib chiqishimiz kerak Rasm.

Bu xususiyat ob'ekt bo'lib, u o'z navbatida saqlangan grafik ob'ektga ishora qiluvchi kichik xususiyatlarga ega. Agarda Rasm bit matritsa saqlanadi va xususiyat bilan ko'rsatiladi Rasm. Bitmap. Agar belgi saqlangan bo'lsa, u xususiyat tomonidan ko'rsatiladi Rasm. Belgi. Saqlangan metafayl xususiyat bilan ko'rsatiladi Rasm. Metafayl. Nihoyat, har qanday turdagi grafik ob'ekt xususiyat bilan ko'rsatiladi Rasm. Grafika.

Ob'ekt Rasm va uning xususiyatlari Bitmap, Belgi, Metafayl Va Grafika faylni o'qish va yozish usullariga ega LoadFromFile Va SaveToFile:

tartib LoadFromFile( const Fayl nomi: ip);

tartib SaveToFile( const Fayl nomi: ip);

Xususiyatlari uchun Rasm. Bitmap, Rasm. Belgi Va Rasm. Metafayl Fayl formati ob'ekt sinfiga mos kelishi kerak: bit matritsasi, belgi, metafayl. Mulkga faylni o'qiyotganda Rasm. Grafika fayl metafayl formatida bo'lishi kerak. Va ob'ektning o'zi uchun Rasm O'qish va yozish usullari avtomatik ravishda fayl turiga moslashtiriladi. Keling, buni bir misol bilan tushuntiramiz.

Keling, 4.2-bo'limda muhokama qilingan grafik fayllarni ko'rish misoliga o'xshash dastur tuzamiz. Turli xillik uchun siz tugmachadan boshqa narsa yordamida uni boshqarishingiz mumkin Tugma, va menyu. Formaga komponentni joylashtiring Rasm. Uni cho'zing yoki uning xususiyatini o'rnating Hizalamoq teng alClient Shunday qilib, u shaklning butun mijoz maydonini egallaydi. Grafik faylni ochish dialog oynasi komponentini shaklga torting OpenPictureDialog(8.2-bo'limga qarang ). Formaga asosiy menyu komponentini ham joylashtiring Asosiy menyu(6.1-qismga qarang ) va unda bitta bo'limni o'rnating - Fayl. Ushbu bo'lim uchun ishlov beruvchiga bayonot yozing

(OpenPictureDialog1.Execute) keyin. Rasm. LoadFromFile(.FileName);

Ushbu operator grafik faylni ochish uchun dialog oynasini chaqiradi (4.4-rasmga qarang) va uni komponentga yuklaydi. Rasm 1 foydalanuvchi tanlagan fayldan tasvir (4.5-rasmga qarang). Bundan tashqari, fayl har qanday turdagi bo'lishi mumkin: bit matritsasi, belgi yoki metafayl.

4.5-rasm Komponentdagi rasm Rasm bit matritsasi (a) va piktogramma (6)



Ushbu ilovada usul LoadFromFile ga qo'llaniladi Rasm 1. Rasm. Agar faqat bit matritsali fayllar ochilsa, faylni yuklash operatori bilan almashtirilishi mumkin

Rasm. Bitmap LoadFromFile(.FileName);

Piktogrammalar uchun operatordan foydalanish mumkin. Rasm. Belgi. LoadFromFile(.FileName);

va metafayllar uchun - operator. Rasm. Metafayl. LoadFromFile(.FileName);

yoki. Rasm. Grafika. LoadFromFile(.FileName);

Ammo bu barcha holatlarda, agar fayl formati mo'ljallangan formatga mos kelmasa, xatolik yuzaga keladi. Usul xuddi shunday ishlaydi SaveToFile qo'llaniladigan farq bilan Rasm yoki uchun Rasm. Grafika u har qanday formatdagi tasvirni faylda saqlaydi. Misol uchun, agar siz ilovangizni dialog oynasi bilan kengaytirsangiz SavePictureDialog(8.2-bo'limga qarang ), menyudagi Saqlash bo'limiga kiring va operatorni uning ishlov beruvchisiga joylashtiring

SavePictureDialog1. Bajarish keyin. Rasm. SaveToFile(SavePictureDialog1. Fayl nomi);

keyin foydalanuvchi istalgan formatdagi rasmni yangi nom bilan faylda saqlashi mumkin bo‘ladi. Faqat bu holatda, kelajakda chalkashmaslik uchun saqlangan faylning kengaytmasi saqlangan tasvir formatiga mos kelishi kerak.

Saqlash operatorini almashtirsangiz, dastur har qanday formatdagi tasvirlar uchun mutlaqo bir xil ishlaydi

Rasm. Grafika. SaveToFile(.FileName);

mulkdan foydalanish Rasm. Grafika. Va agar siz komponentda saqlangan narsaning formatini bilsangiz Rasm tasvirlar, keyin usulni qo'llashingiz mumkin SaveToFile mulklarga Rasm. Bitmap, Rasm. Belgi Va Rasm. Metafayl.

Barcha ko'rib chiqilgan ob'ektlar uchun Rasm, Rasm. Bitmap, Rasm. Belgi Va Rasm. Metafayl Ob'ekt qiymatlarini belgilash usullari aniqlanadi:

Assign(Manba: TPersistent);

Biroq, uchun BitMap, Belgi Va Metafayl Siz faqat bir hil ob'ektlarning qiymatlarini belgilashingiz mumkin: mos ravishda, bit matritsalari, piktogrammalar, metafayllar. Geterogen ob'ektlarga qiymatlarni belgilashga urinayotganda istisno qilinadi Ekonvertatsiya xatosi. Ob'ekt Rasm- universal, u boshqa uchta sinfning har qanday ob'ektlarining qiymatlarini belgilash mumkin. Va ma'nosi Rasm faqat turi unda saqlangan ob'ekt turiga mos keladigan ob'ektga tayinlanishi mumkin.

Usul Tayinlash Clipboard buferi bilan tasvirlarni almashish uchun ham foydalanish mumkin. Masalan, operator

Assign(Image1.Picture);

almashish buferida saqlangan tasvirni buferga saqlaydi Rasm 1. Shunga o'xshash operator

Delphi tasviriy grafik ilovasi

Rasm 1. Rasm. Tayinlash (almashtirish buferi);

ichida o'qing Rasm 1 clipboarddagi rasm. Bundan tashqari, u har qanday rasm va hatto matn bo'lishi mumkin.

Operatorga joylashtirish uchun clipboard bilan ishlashda eslab qolish kifoya foydalanadi modulingiz modulga havola Clipbrd. Delphi bu havolani avtomatik ravishda kiritmaydi.

Komponent xususiyatlariga qaytish Rasm, 4.5-rasmda ko'rsatilgan test ilovamizga xos bo'lgan bitta kamchilikni qayd etishimiz mumkin. Turli xil tasvirlarni yuklashda dastur oynasining o'lchami juda kichik bo'lishi mumkin, keyin siz rasmning faqat bir qismini yoki juda kattaligini ko'rasiz va keyin rasm shaklning yuqori chap burchagiga yoqimsiz tarzda joylashtiriladi va juda ko'p bo'sh joy qoldiradi. Ushbu kamchilikni xususiyatlardan foydalangan holda yo'q qilish mumkin Balandligi(balandlik) va Kengligi(kenglik) komponenti Rasm. Mulk bilan Avtomatik o'lcham ichida o'rnatilgan rost o'lchamlari Rasm avtomatik ravishda yuklangan rasm bilan bir xil o'lchamga o'rnatiladi. Va bu o'lchamlar mos ravishda shaklni o'zgartirish uchun ishlatilishi mumkin. Masalan, fayldan rasmni yuklash uchun oldingi kodni quyidagi bilan almashtirish mumkin:

OpenPictureDialog1. Bajarish keyin

boshlanishi. Rasm. LoadFromFile(.FileName); ClientHeight: = Image1. Balandligi+10;. Yuqori:=1-shakl. ClientRect. Yuqori

+ (Form1. ClientHeight - Image1. Height) div 2;. ClientWidth:=Image1. Kengligi+10;. Chapda: = Form1. ClientRect. Chapga

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

oxiri;

Ushbu kod shaklning mijoz maydoni hajmini komponentning o'lchamidan biroz kattaroq qilib belgilaydi. Rasm 1, bu esa o'z navbatida mulk tufayli rasmning o'lchamiga moslashadi Avtomatik o'lcham. Ilovangizga ushbu o'zgarishlarni kiriting, uni ishga tushiring va shakl yuklangan rasmning o'lchamiga avtomatik moslashishini ko'ring.

Shakl komponenti

Komponent Shakl faqat shartli ravishda grafik ma'lumotni ko'rsatish vositasi sifatida tasniflanishi mumkin, chunki u turli xil geometrik shakllarni ifodalaydi, mos ravishda soyalanadi. Ushbu komponentning asosiy xususiyati Shakl(shakl), u quyidagi qiymatlarni qabul qilishi mumkin:

Ushbu shakllarning namunalari 4.7-rasmda ko'rsatilgan

4.7-rasm Komponentlarga misollar Shakl


Komponentning yana bir muhim xususiyati Cho'tkasi(cho'tka). Bu xususiyat turdagi ob'ekt hisoblanadi TBrush, bir qator kichik xususiyatlarga ega, xususan: rang ( Cho'tkasi. Rang) va uslub ( Cho'tkasi. Uslub) shaklni to'ldiring. Ba'zi qiymatlarda to'ldirish Uslub 4.7-rasmda komponentning o'ziga xos xususiyatlaridan uchinchisini ko'rishingiz mumkin Shakl - Qalam(qalam) chiziq uslubini belgilaydi. Bu mulk mulkka o'xshaydi Cho'tkasi, 4.2-bo'limda allaqachon muhokama qilingan . Ushbu xususiyatlar bo'yicha ma'lumotnoma ma'lumotlarini 10-bobda topishingiz mumkin*.

Diagramma komponenti

Endi komponentni ko'rib chiqaylik Grafik. Ushbu komponent sizga juda ta'sirli ko'rinadigan turli diagramma va grafiklarni qurish imkonini beradi (4.8-rasm). Komponent Grafik ko'p xossalari, usullari, hodisalari bor, shuning uchun agar ularning barchasini ko'rib chiqsak, bunga butun bir bobni bag'ishlashimiz kerak bo'ladi. Shuning uchun biz faqat asosiy xususiyatlarni hisobga olish bilan cheklanamiz Grafik. Qolganini Delphi-ning o'rnatilgan yordamida topishingiz mumkin yoki shunchaki diagrammalar bilan tajriba o'tkazish orqali ularni sinab ko'ring.

Komponent Grafik ob'ektlarning konteyneridir Seriya turi TChartSeries- turli ko'rsatish uslublari bilan tavsiflangan ma'lumotlar seriyasi. Har bir komponent bir nechta seriyani o'z ichiga olishi mumkin. Agar siz grafikni ko'rsatmoqchi bo'lsangiz, unda har bir seriya grafikdagi bitta egri chiziqqa mos keladi. Agar siz diagrammalarni ko'rsatmoqchi bo'lsangiz, ba'zi diagrammalar uchun bir-birining ustiga bir nechta turli qatorlar qo'yilishi mumkin, boshqalari uchun (masalan, doiraviy diagrammalar) u xunuk ko'rinishi mumkin. Biroq, bu holatda ham siz bitta komponentni o'rnatishingiz mumkin Grafik turli xil diagramma turlariga ega bir xil ma'lumotlarning bir nechta seriyasi. Keyin, har safar ulardan birini faollashtirish orqali siz foydalanuvchiga o'zi qiziqqan ma'lumotlarni aks ettiruvchi diagramma turini tanlash imkoniyatini berishingiz mumkin.

Bir yoki ikkita (agar siz 4.8-rasmni takrorlashni xohlasangiz) komponentlarni joylashtiring Grafik shaklda va Ob'ekt inspektorida ochiladigan xususiyatlarga qarang. Quyida ulardan ba'zilarining tushuntirishlari keltirilgan.

Sichqonchaning o'ng tugmachasini bosish orqali foydalanuvchi grafikning kuzatilgan qismini bajarish vaqtida aylantira oladimi yoki yo'qligini aniqlaydi. Mumkin bo'lgan qiymatlar: pmNone - aylantirish taqiqlanadi, pmHorizontal, pmVertical yoki pmBoth - aylantirishga ruxsat beriladi, mos ravishda, faqat gorizontal yo'nalishda, faqat vertikal yo'nalishda yoki ikkala yo'nalishda.

Foydalanuvchiga sichqoncha kursori yordamida diagramma yoki grafik fragmentlarini kesib, bajarish jarayonida tasvir masshtabini oʻzgartirish imkonini beradi (quyida 4.8-b-rasmda toʻliq 4.8-a-rasmda keltirilgan grafik fragmentini koʻrish momenti koʻrsatilgan).

Grafik sarlavhasini belgilaydi.

Grafik uchun yorliqni belgilaydi. Sukut bo'yicha yo'q. Imzo matni Text sub xususiyati bilan aniqlanadi.

Diagramma atrofidagi chegarani belgilaydi.

Diagrammaning afsonasi - bu belgilar ro'yxati.

MarginLeft, MarginRight, MarginTop, MarginBottom

Chap, o'ng, yuqori va pastki chegara qiymatlari.

Pastki o'q, chap o'q, o'ng o'q

Bu xususiyatlar mos ravishda pastki, chap va o'ng o'qlarning xususiyatlarini aniqlaydi. Ushbu xususiyatlarni o'rnatish grafiklar va diagrammalarning ayrim turlari uchun mantiqiydir.

Chap devor, pastki devor, orqa devor

Ushbu xususiyatlar mos ravishda grafikning uch o'lchovli ko'rsatish maydonining chap, pastki va orqa qirralarining xususiyatlarini aniqlaydi (4.8 a-rasmga qarang, pastki grafik).

Komponentda ko'rsatilgan ma'lumotlar seriyalari ro'yxati.

3D diagramma ko'rsatishni yoqadi yoki o'chiradi.

Uch o'lchovli displeyning xususiyatlari.

Uch o'lchovli shkala (4.8-rasm uchun bu diagrammaning qalinligi va grafik chiziqlarining kengligi).


Ob'ektlar inspektoridagi ko'plab sanab o'tilgan xususiyatlar yonida diagramma muharririning u yoki bu sahifasiga qo'ng'iroq qilish imkonini beruvchi ellipsli tugmalar mavjud - bu diagrammalarning barcha xususiyatlarini o'rnatish imkonini beruvchi ko'p sahifali oyna. Diagramma muharriri komponentni ikki marta bosish orqali ham chaqirilishi mumkin Grafik yoki ustiga sichqonchaning o‘ng tugmasi bosiladi va ochilgan menyudan Grafikni tahrirlash buyrug‘i tanlanadi.

Agar siz 4.8-rasmda ko'rsatilgan dasturni qayta ishlab chiqarishga harakat qilmoqchi bo'lsangiz, yuqoridagi komponentni ikki marta bosing Grafik. Siz Grafik muharriri oynasiga (4.9-rasm) bir nechta yorliqlarga ega bo'lgan Diagramma sahifasiga o'tasiz. Avvalo, undagi Series yorlig'i sizni qiziqtiradi. Qo'shish tugmasini bosing - qator qo'shing. Siz diagramma yoki grafik turini tanlashingiz mumkin bo'lgan oynaga o'tasiz (4.10-rasm). Bunday holda Pie - doiraviy diagrammani tanlang. Sarlavhalar yorlig'idan foydalanib, siz diagramma sarlavhasini o'rnatishingiz mumkin, Legend yorlig'i diagramma afsonasini (belgilar ro'yxati) ko'rsatish uchun parametrlarni o'rnatish yoki uni butunlay ekrandan olib tashlash imkonini beradi, Panel yorlig'i panelning ko'rinishini aniqlaydi. qaysi diagramma ko'rsatilgan bo'lsa, 3D yorlig'i sizga diagramma ko'rinishini o'zgartirish imkoniyatini beradi: egilish, siljish, qalinlik va boshqalar.

Diagramma muharririda ishlayotganingizda va diagramma turini tanlaganingizda, komponentlar Grafik Sizning shaklingiz uning ko'rinishini unga kiritilgan shartli ma'lumotlar bilan ko'rsatadi (4.11-rasmga qarang).

4.10-rasm Grafik muharririda diagramma turini tanlash


Shuning uchun, arizangizga turli xil variantlarni qo'llash natijasini darhol ko'rishingiz mumkin, bu juda qulay.

Bir qator yorliqlarga ega bo'lgan Series sahifasi sizga tanlash imkoniyatini beradi qo'shimcha xususiyatlar seriyali displey. Xususan, "Format" yorlig'idagi doiraviy diagramma uchun "Circled Pie" opsiyasini yoqish foydali bo'ladi, bu esa komponentning istalgan o'lchamida, Grafik diagrammani doira shaklida ko'rsatish. Belgilar yorlig'ida Uslublar guruhining tugmalari diagrammaning alohida segmentlariga tegishli teglarda nima yozilishini aniqlaydi: Qiymat - qiymat, Foiz - foizlar, Yorliq - ma'lumotlar nomlari va boshqalar. 4.8-rasmdagi misolda "Foiz" tugmasi yoqilgan va "Umumiy" yorlig'ida faqat butun sonlar ko'rsatilishini ta'minlash uchun foiz shablonlari o'rnatilgan.

Agar xohlasangiz, ushbu komponentga qo'shishingiz mumkin Grafik Diagramma sahifasining Series yorlig'idagi Klonlash tugmasini bosish orqali boshqa bir xil seriyani tanlang, so'ngra ushbu yangi seriya uchun O'zgartirish tugmasini bosing va boshqa diagramma turini tanlang, masalan, Bar. Albatta ikkita turli xil turlari bitta rasmdagi diagrammalar yomon ko'rinadi. Ammo siz ushbu yangi seriya uchun indikatorni "Series" yorlig'ida o'chirib qo'yishingiz mumkin, so'ngra foydalanuvchiga diagramma ko'rsatishning u yoki bu turini tanlashiga ruxsat berishingiz mumkin (bu qanday amalga oshirilishini quyida ko'rsatamiz).

Diagramma muharriridan chiqing, ilovangizdagi pastki komponentni tanlang Grafik va diagramma muharriri yordamida uning uchun sozlash xususiyatlarini takrorlang. Bunday holda, agar siz grafikda ikkita egri chiziqni ko'rsatishni xohlasangiz, ikkita seriyani ko'rsatishingiz va Chiziqli diagramma turini tanlashingiz kerak bo'ladi. Grafiklar haqida gapirayotganimiz sababli, siz eksa va devorlar yorliqlaridan o'qlarning koordinata xususiyatlarini va grafikning uch o'lchovli qirralarini belgilashingiz mumkin.

Bu dizayn uchun ko'rinish ariza tugaydi. Siz ko'rsatmoqchi bo'lgan ma'lumotlarni belgilaydigan kodni yozish qoladi. Sinov ilovasi uchun dumaloq diagrammada bir nechta doimiy ma'lumotlarni, grafiklarda sinus va kosinus funktsiyalarini o'rnatamiz.

Ko'rsatilgan qiymatlarni o'rnatish uchun siz ketma-ket usullardan foydalanishingiz kerak Seriya. Keling, faqat uchta asosiy usulga to'xtalib o'tamiz.

Usul Toza avval kiritilgan bir qator ma'lumotlarni tozalaydi.

Usul Qo'shish:

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

diagrammaga yangi nuqta qo'shish imkonini beradi. Parametr AV qiymat qo'shilgan qiymatga, parametrga mos keladi ALabel- diagrammada va afsonada ko'rsatiladigan ism, AColor- rang. Parametr ALabel- ixtiyoriy, uni bo'sh belgilash mumkin: "".

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

funksiya grafigiga yangi nuqta qo‘shish imkonini beradi. Variantlar AXValue Va AYValue argument va funktsiyaga mos keladi. Variantlar ALabel Va AColor usuli bilan bir xil Qo'shish.

Shunday qilib, bizning misolimizda ma'lumotlarni yuklash tartibi quyidagicha ko'rinishi mumkin:

155;=251;=203;=404;

var: so'z;

boshlanishi Seriya 1 qilmoq

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

oxiri;. Tozalash;. Tozalash;

uchun i: =0 uchun 100 qilmoq

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

Agar sizda, masalan, diagrammada ko'rsatilgan ma'lumotlar mavjud bo'lsa, ikkita seriya Seriya 1 Va 4-seriya har xil turlari - Pirog Va Bar, keyin siz foydalanuvchi so'roviga ko'ra diagramma turini o'zgartiradigan protsedurani kiritishingiz mumkin. Ushbu protsedura tadbirga kiritilishi mumkin OnClick ba'zi tugmalar, menyu buyrug'i yoki, masalan, oddiygina komponentni bosishni qayta ishlash Grafik. Ma'lumotlarni yuklash uchun 4-seriya va ushbu diagrammani birinchi daqiqada ko'rinmas holga keltiring, siz operatorlarni avval berilgan protsedura oxirida kiritishingiz mumkin.

Tayinlash (1-seriya); Faol: =false;

Ushbu operatorlarning birinchisi joylashtirilgan ma'lumotlarni qayta yozadi Seriya 1, ketma-ket 4-seriya. Va ikkinchi operator seriyani ko'rinmas qiladi 4-seriya. Diagramma turini o'zgartirish protsedura bilan amalga oshiriladi

Faol: = emas Seriya 1. Faol;. Faol: = emas 4-seriya. Faol;

4.8 b-rasmda foydalanuvchining boshqa diagramma ko'rinishiga o'tish natijasini ko'rishingiz mumkin.

LABORATORIYA ISHI

MAVZU: « Grafika ichidaDelphi- eng oddiy qurilish
geometrik shakllar"

Nazariyadan qisqacha ma'lumot

Delphi dasturchiga grafiklarni ko'rsatishning uchta usulini taqdim etadi:

    dastur ishlayotgan vaqtda chizma tuzish

    oldindan yaratilgan grafikalardan foydalanish

    grafik komponentlar yordamida tasvirlarni yaratish

Grafiklarni qurish uchun chizmachilik asboblari va usullarini ta'minlovchi maxsus sinflar yaratilgan: asboblar uchta sinfda tasvirlangan - Tfont, Tpen, Tbrush; Chizish maydoni va usullari Tcanvas sinfi tomonidan taqdim etiladi.

SinfTshrift– tuvalda matnni aks ettirish uchun foydalaniladigan shriftning xususiyatlarini belgilaydi. Sinfning xususiyatlari "Ko'pgina komponentlar uchun mavjud bo'lgan asosiy xususiyatlar" bo'limida tavsiflangan.

SinfTpen– chiziqlar chizilgan qalam (qalam) xususiyatlarini belgilaydi.

Xususiyatlari sinf Tpen:

Rang:Tcolor – chiziq rangi (standart – qora)

Kengligi:integer – pikseldagi chiziq qalinligi;

Uslub = (psSolid, psDash, psDot, psdashDot, psClear) – chiziq uslubini belgilaydi (qattiq, chiziqli, nuqtali, tire nuqtali, ko‘rinmas)

SinfCho'tkasi– tasvir sirtini bo‘yaydigan cho‘tkaning xususiyatlarini o‘rnatadi.

Xususiyatlari sinf Cho'tkasi:

Rang:Tcolor - cho'tka rangi (standart - oq)

Uslub– cho‘tka namunasi quyidagi qiymatlarni qabul qilishi mumkin:

BsSolid - qattiq rang berish

BsClear - soyaning yo'qligi

BsVertikal - vertikal chiziqlar

BsBdiagonal - o'ng diagonal chiziqlar

BsDiagCross - qiya hujayra

BsGorizontal – gorizontal chiziqlar

BsFdiagonal - chap diagonal chiziqlar

BsCross - qafas

SinfTkanvas– yaratilgan tasvir qaysi sirtda joylashganligini va tasvirni yaratish vositalarini aniqlaydi: shrift, qalam, cho‘tka.

Sifatda ish maydoni(kanvas, "kanvas"), sukut bo'yicha shaklning butun mijoz maydoni ishlatiladi (sarlavhasiz, asosiy menyu va shaklni aylantirish chiziqlarisiz), lekin siz komponentlar yordamida forma ichida kichikroq ish joylarini ajratishingiz mumkin. PaintBox yoki Rasm. Tuval koordinatasining kelib chiqishi ish maydonining yuqori chap burchagidir, ish maydonining kengligi xususiyat bilan belgilanadi. ClientWidth, balandligi – mulk ClientHeight.

Xususiyatlari sinf Tkanvas:

Tuval:Tcanvas – chizma maydonini belgilaydi

Cho'tkasi:Tbrush - yopiq shakllarni to'ldirish uchun cho'tka

Shrift:Tfont - tuvaldagi matnni ko'rsatish uchun shrift

Qalam:Tpen – chizish uchun qalam (qalam).

PenPos:Tpoint - tuvaldagi ko'rinmas kursorning joriy holati

Izoh : Tpoint turi - quyidagicha aniqlanadi:

Nuqta yozing = rekord

Piksellar: Tcolor - tuval piksellarining ranglarini, X, Y - piksel koordinatalarini o'rnatadi. Piksellar xususiyati tanlangan rang nuqtalaridan foydalangan holda grafiklarni chizish uchun foydalanish uchun qulay.

TCanvas sinfining asosiy usullari

    tartib MoveTo(x,y:integer); - ruchkani chiziq chizmasdan koordinatalari (x, y) nuqtaga olib boradi.

    Jarayon LineTo(x,y:integer); - joriy nuqtadan (x, y) koordinatali nuqtaga chiziq chizadi.

Misol : Shaklning yuqori chap burchagidan pastki o'ng burchagiga diagonal ko'k chiziq chizing.

Pen.color:= clblue;

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

    tartib To'rtburchak(x1,y1,x2,y2:integer); - to'rtburchak chizadi: x1,y1 – yuqori chap burchak koordinatalari; x2, y2 - pastki o'ng burchakning koordinatalari.

Misol : Shaklning o'rtasida tomoni 60 piksel bo'lgan sariq soyali kvadrat chizing.

var Xc,Yc: butun son; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

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

    tartib Ellips(x1,y1,x2,y2:integer); - koordinatalari ko'rsatilgan to'rtburchak ichiga chizilgan ellipsni chizadi.

Misol : PaintBox komponentasiga yozilgan ellipsni chizish.

PaintBox1.Canvas.Pen.Width:=4; //chiziq kengligi = 4 piksel

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

    tartib Poligon(); - koordinatalar massivi bilan belgilangan yopiq ko'pburchakni chizadi.

Misol : shaklning yon tomonlarining o'rta nuqtalarini bog'laydigan to'ldirilgan olmosni chizish

Var Xc,Yc:integer; // shaklning mijoz hududi markazining koordinatalari

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // apelsin rang soya qilish

Canvas.Polygon();

oxiri;

    Jarayon yoy(x1,y1,x2,y2,x3,y3,x4,y4:integer); - to'rtburchak (x1, y1, x2, y2) bilan chegaralangan ellips yoyini ko'rsatadi. Yoy koordinatali (x3,y3) nuqtadan (x4,y4) koordinatali nuqtagacha ko'rsatiladi. qarshi soat yo'nalishi bo'yicha.

Misol : komponentning yuqori tomonining o'rtasini bog'laydigan ellips yoyini chizish
PaintBox o'ng tomonining o'rtasi bilan.

Protsedura Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: Butun son;

PaintBox1 bilan bajaring

Canvas.Pen.Color:= clWhite;

Canvas.Pen.Width:= 3;

Canvas.rectangle(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);

Oxiri;

    tartib Akkord(x1,y1,x2,y2,x3,y3,x4,y4:integer); - akkord chizadi - ellipsning 2 nuqtasini tutashtiruvchi to'g'ri chiziq: koordinatalari (x3, y3) nuqta bilan (x4, y4).

Misol : ARC usuli uchun berilgan misoldagi Chord usulini almashtiring va quyidagi natijani oling.

    tartib Pirog(x1,y1,x2,y2,x3,y3,x4,y4:integer); - ellips markazini (x3,y3) va (x4,y4) koordinatalari bilan tutashtiruvchi ellips segmentini chizadi.

Misol : ARC usuli uchun berilgan misolda PIE usulini tasavvur qiling va shu natijani oling.

    tartib TextOut(x,y:integer;Matn:string); - Text parametrida o'tkazilgan satrni yuqori chap burchagi x, y koordinatalari bilan belgilangan to'rtburchakga chiqaradi. Shrift xarakteristikalari Shrift vositasi yordamida o'rnatiladi.

Misol : shaklning pastki qismiga chizilgan grafik nomini yozing.

Canvas.Font.Height:=20 ; //belgi balandligi 20 piksel

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, ‘SIN(X) funksiya grafigi’);

Grafik komponentlar

Delphi sizga takomillashtirish imkonini beruvchi bir qancha tayyor komponentlarni taklif etadi foydalanuvchi interfeysi. Ushbu komponentlar sahifada joylashgan Qo'shimcha Va Tizim komponentlar palitralari.

KomponentRasm(SinfTasvir) – kengaytmali tashqi fayllarda saqlangan grafik tasvirlarni ko‘rsatish uchun yaratilgan:

    Iko (piktogramma, piktogramma);

    bmp( rastr tasvir, bitmap);

    Wmf, .emf (metafayl);

    Jpg, .jpeg (JPEG siqilgan tasvir).

Asosiy xususiyatlari :

Avtomatik o'lcham:boolean - qachon rost komponent o'z o'lchamlarini yuklangan tasvirning o'lchamlariga moslashtiradi; sukut bo'yicha noto'g'ri.

Stretch:boolean - agar rost bo'lsa, yuklangan qiymat komponentning butun maydonini egallaydi; sukut bo'yicha noto'g'ri.

Tuval:Tcanvas – dasturni bajarish jarayonida komponentning ichiga chizish uchun foydalaniladi.

Rasm:Tpicture - Komponentga joylashtirilgan tasvirni belgilaydi.

Asosiy usullari sinf Rasm:

Jarayon LoadFromFile(Fayl nomi: string); - Fayl nomi nomli fayldan komponentga tasvirni yuklaydi.

Jarayon SaveToFile(Fayl nomi: string); -komponentdagi tasvirni Filename nomli faylga saqlaydi.

KomponentPaintBox - to'rtburchaklar chizilgan maydonini belgilaydi. Asosiy mulk hisoblanadi Tuval, Tcanvas sinfining barcha usullari mavjud, u mustaqil xususiyatlarga ega emas.

Misol : PaintBox1 komponentiga yozilgan sariq ellipsni chizish.

Protsedura Tform1Button1Click(yuboruvchi:Mavzu);

PaintBox1.Canvas bilan bajaring

Brush.Color:=clyellow;

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

oxiri;

KomponentBitBtn rastr tugmasi

BitBtn tugmasi, standart tugmadan farqli o'laroq, sarlavhaga qo'shimcha ravishda xususiyat tomonidan belgilangan tasvirni o'z ichiga olishi mumkin. Glif. Oldindan belgilangan xususiyatlarga ega (ma'lum bir rasm, yozuv va maqsadli) standart BitBtn tugmalari to'plami mavjud - standart tugma turi xususiyat orqali tanlanadi. Mehribon. Tur=(bkCustom, bkAbort,bkCancel, bkClose…)

Vazifa № 1

O'z ichiga olgan dastur yarating asosiy shakli ikkita Tasvir komponenti va 4 tugma ("Rasmni yuklash", "Geometrik figurani qurish", "Rangni o'zgartirish", "Chiqish") va sizga quyidagilarga imkon beradi:

a) foydalanuvchi tanlagan grafik tasvirni Image1 komponentiga yuklang, shunda tasvir Image komponentining butun maydonini egallaydi.

b) Image1 komponenti ostida “Bu fayldan olingan rasm.

(komponentning o'lchami va holatini har qanday o'lchash uchunRasm1 ta yozuv bo'lishi kerak
qat'iy komponent ostida joylashgan).

c) Image2 komponentining ichiga geometrik figurani chizish: Image komponentining o'rtasini Image komponentining pastki va o'ng tomonlari o'rtalari bilan bog'laydigan to'ldirilgan ellips segmenti.

(komponentning o'lchami va holatidagi har qanday o'zgarish uchunRasm2 raqam to'g'ri tuzilgan bo'lishi kerak, ya'ni. komponentga tegishli spetsifikatsiyaga muvofiqRasm2)

d) ColorDialog komponentasi yordamida foydalanuvchining iltimosiga ko'ra Image2 da chizilgan rasm chizig'ining rangini o'zgartirish.

Vazifa № 2

Tasvir komponentida tasodifiy bir nechta teglarni (masalan, “Hurray!” so‘zi) joylashtirish imkonini beruvchi dastur yarating. Buni amalga oshirish uchun Randomize tasodifiy sonlar generatoridan va Random funksiyasidan foydalaning.

Tasvir komponentining o'lchamlari, Rasmda ko'rsatilgan so'z va so'zlar soni foydalanuvchi tomonidan kiritilishi kerak.

Vazifa № 3

ListBox dan geometrik shakl nomini tanlash va Image komponentida tanlangan shaklni chizish imkonini beruvchi dastur yarating. Shaklning rangi RadioGroup komponentidan tanlanadi.

Vazifa № 4

PaintBox1 komponentini 4 ta teng qismga ajrating, har bir qismini boshqa rangga bo'yang, masalan: ko'k, sariq, yashil, qizil.

PaintBox1 ning har bir burchagi yoniga shu burchakning koordinatalarini yozing (PaintBox1 komponenti joylashgan shaklning kelib chiqishiga nisbatan).

Vazifa № 5

BILAN

Radiogroup1 komponentidan chiziladigan shakl turini, Radiogroup2 komponentidan to'ldirish rangini tanlang va Image komponentida tanlangan shaklni chizing.

Vazifa № 6

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

PaintBox1 komponentini 2 ta teng qismga bo'ling, har bir qismning ichiga ColorDialog-da foydalanuvchi tanlagan rang bilan to'ldirilgan ellips chizing.

Vazifa № 7

BILAN Quyidagilarga imkon beruvchi ilova yarating:

ListBox-dan geometrik shakl nomini tanlang va tanlangan shaklni Image komponentida chizing. Shakl, agar RadioGroup komponentida Ha tanlangan bo'lsa, ColorDialog komponentida foydalanuvchi tanlagan rang bilan to'ldirilishi kerak.

Vazifa № 8

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

PaintBox1 komponentini 4 ta teng qismga bo'ling, har bir qismning ichiga turli xil geometrik shakl (ellips, romb, uchburchak va to'rtburchak) chizing. Har bir shaklning rangi foydalanuvchi tomonidan ColorGrid-da tanlanadi.

Vazifa № 9

ListBox dan geometrik shakl nomini tanlang
shakllar (ellips, romb, to'rtburchak) va chizish
Image komponentida tanlangan shakl. Manzil
Tasvir komponentidagi shakllar (I chorak, II chorak,

III yoki IV chorak) va rasmning rangi tanlanadi
RadioGroup komponentlaridan.

Vazifa № 10

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

Yon o'lcham matn bo'lmasligi, manfiy raqam bo'lmasligi va oshmasligini ta'minlang kichikroq o'lcham shakllari.

PaintBox1 komponentini 4 ta teng qismga bo'ling, har bir qismning ichiga foydalanuvchi tomonidan Comboboxda tanlagan geometrik shaklni (ellips, romb, uchburchak va to'rtburchak) chizing. Rasmning rangi foydalanuvchi tomonidan ColorBox-da tanlanadi.

Vazifa № 11

Quyidagilarga imkon beruvchi ilova yarating:

Radiogroup komponentidan chizilgan joyni tanlang

to'g'ri burchakli uchburchakning Image komponentida, o'rnating
figuraning soyasining rangi yoki kontur rangiga qarab
Checkbox tugmachalarini yoqish. orqali rangni tanlang
ColorGrid komponenti.

Vazifa № 12

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

Yon o'lcham matn bo'lmasligi, manfiy raqam bo'lmasligi va kichikroq shakl hajmidan oshmasligini ta'minlang.

PaintBox1 komponentini 2 ta teng qismga ajrating, qismlardan birining ichiga foydalanuvchi tomonidan Combobox-da tanlagan geometrik shakl (ellips, romb, uchburchak va to'rtburchak) chiziladi. Rasmning rangi foydalanuvchi tomonidan ColorBox-da tanlanadi.

Masalan, siz shakl rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color:= ColorBox1.Colors;

Vazifa № 13

Quyidagilarga imkon beruvchi ilova yarating:

a) shaklning o'rtasiga kvadrat chizish (kvadrat tomonining o'lchami foydalanuvchi tomonidan kiritiladi). Yon o'lcham matn bo'lmasligi, manfiy raqam bo'lmasligi va kichikroq shakl hajmidan oshmasligini ta'minlang.

b) Checkbox tugmachalarining kiritilishiga qarab kvadratni bitta yoki ikkita diagonalga bo'ling va har bir uchburchakni boshqa rangga bo'yang. Rangni tanlash foydalanuvchi tomonidan amalga oshiriladi.

Vazifa № 14

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

Yon o'lcham matn bo'lmasligi, manfiy raqam bo'lmasligi va kichikroq shakl hajmidan oshmasligini ta'minlang.

PaintBox1 komponentini 2 ta teng qismga ajrating, bir qismining ichiga romb, ikkinchi qismining ichiga esa istalgan uchburchak chiziladi. Rasmning rangi foydalanuvchi tomonidan ColorBox-da tanlanadi.

Masalan, siz shakl rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color:= ColorBox1.Colors;

Vazifa № 15

Quyidagilarga imkon beruvchi ilova yarating:

a) Image komponentining o‘lchamlarini gorizontal va vertikal ravishda foydalanuvchi klaviaturadan kiritgan raqam bilan bir xil va teng qilib o‘rnatish;

(yon oʻlchami matn boʻlmasligi, manfiy raqam boʻlmasligi va kichikroq shakl hajmidan oshmasligi sharti bilan)

b) Image komponentini ikkita ko'k chiziqli 4 ta teng kvadratga bo'ling;

c) har bir hosil bo'lgan kvadrat ichida unga yozilgan doira chizing (foydalanuvchiga rang tanlash dialog oynasi orqali doiralar rangini tanlashga ruxsat bering).

Vazifa № 16

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

Yon o'lcham matn bo'lmasligi, manfiy raqam bo'lmasligi va kichikroq shakl hajmidan oshmasligini ta'minlang.

PaintBox1 komponentini 9 ga bo'ling teng qismlar va har bir natijada shaxmat taxtasi to'rtburchaklar to'ldiring. To'ldirish rangi foydalanuvchi tomonidan ColorBox-da tanlanadi.

Masalan, siz shakl rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color:= ColorBox1.Colors;

Vazifa № 17

Shaklda ikkita Tasvir komponenti va to'rtta tugmani joylashtiring: Chiziq rangi, To'ldirish rangi, Ok va Chiqish; va Edit komponenti.

OK tugmasini bosganingizda Rasm1da tomoni X bo'lgan kvadrat, Rasm2da esa har birining uzunligi X bo'lgan oyoqlari teng bo'lgan to'g'ri burchakli uchburchak chiziladi.

Uchburchakning tepasi Image2 ning kelib chiqishi bilan mos keladi. Kvadratning cho'qqilaridan biri Image1 ning kelib chiqishiga to'g'ri keladi.

OK tugmasi faqat siz shaklni chizish uchun chiziq rangi va to'ldirish rangini tanlaganingizda mavjud bo'ladi.

X - Random funksiyasi yordamida tasodifiy tanlaydi va X qiymati Edit komponentida ko'rsatilishi kerak.

Vazifa № 18

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'rnatish imkonini beruvchi dastur yarating.

PaintBox1 komponentini 4 ta teng qismga bo'ling; foydalanuvchi tanlagan qism ichida to'ldirilgan doirani qurish kerak, uning o'lchami foydalanuvchi tomonidan o'rnatiladi. Foydalanuvchi ColorBox-da to'ldirish rangini tanlaydi.

Masalan, siz shakl rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color:= ColorBox1.Colors;


“Delphida grafik ma’lumotni ko’rsatish” Mavzuning mazmuni: 1.C S pppp ooooo ssss ooooo bbbb yyyy in in yyyy vvvv ooooo dddd aaaa yy g rrrrr aaaa ffff iii hhhh eee ssss kkffffnnr ooooooo tskst iiiiii iiiii iv in D D D D eeee llll pppp hhhh iiii O O tttt ooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k aaaa rrrrr tttt iiii nnnn ooooo kkkk O O tttbbnbr ooo iiii eee g g y g eee ooooo mmmm eee ttt rrrr iiii hhchh eee ssss kkkk iiii xxxxx ffff iiii yyyy uuuu rrrrr P Pooooo ssss ttt rrrrr ooooo eee nnnn iiii eee yy g g rrrrr aaaa ffff iiii kkk ooooo vvii dvvi dvvi va rrr aaaa mmmm mmmm....


1. Grafik ma'lumotlarni ko'rsatish usullari. Delphida grafik ma'lumotlarni aks ettirishning bir necha usullari mavjud: Oldindan tayyorlangan tasvirlarni chiqarish (Image, Shape komponentlari); P Grafik va diagrammalarni qurish (Chart komponenti va boshqalar); F Tasvirlash dasturiy jihatdan(Kanvas ob'ekti).


2.Display 2.Rasmlarni ko'rsatish. IMAGE komponentidan foydalangan holda rasmlarni namoyish qilish biz DDDD DDDD MChJ Yiyy va va va ZZZZ P P P PRRRDDDDDDDDDDDDDD IIII XXXX T T T T T T T T T T T T TOTEMMM da ko'rib chiqdik .... Bu erda biz vaqti-vaqti bilan ko'rsatiladigan tasvir komponentlarida ko'rsatiladigan animatsiyaning eng oddiy misolini ko'rib chiqamiz. . PPPP eee rrrrr eee yyyytttoeee nnnn aaaaaaaaaaaaaaaaaaaaaaaaaa






3.Ko`rsatish 3.Geometrik shakllarni ko`rsatish. VA Shaklning bir nechta komponentlaridan siz oddiy chizmalar yaratishingiz mumkin. P Chizmadagi Shape komponentalarining joylashishini (.Chap,.Top), o'lchamini (.Ken,.Balandlik) va rangini (Brush.Color) dasturli o'zgartirish orqali siz eng oddiy animatsiya elementlarini amalga oshirishingiz mumkin. R R R R aaaa ssssssss mmmm ooooh tttt rrrrr eee tttt yee p p p p rrrrr iii mmmm eee rrrrr....


4.Qurilish 4.Grafik va diagrammalarni qurish. Diagrammalar raqamli ma'lumotlar massivlarini ko'proq vizual tasvirlash, ularni vizual ko'rsatish va tahlil qilish uchun mo'ljallangan. PPPP rrrrr iiii mmmm eee rrrrr.... Delphida diagrammalar yaratish uchun bir nechta komponentlar mavjud, ulardan biri Chart komponentidir (TeeChart Std bo'limi).










Grafiklar va diagrammalar. Ko'rsatilishi kerak bo'lgan ma'lumotlar odatda Grafikga dasturiy tarzda uzatiladi, masalan: Series1.Clear; (aniq qator) uchun i:=1 to N do Series1.addxy(i, A[i], clGreen); X o'qi qiymati Y o'qi qiymati X o'qi yorlig'i PP diagrammasidagi ma'lumotlar rangi aaaa ssssssssssss mmmm ooooo tttt rrrrr eee tttt yee p p p p prrrr iiii mmmm eee rrrrr p p poooo sssssssssssssssssssssss rrrrr aaaa ffff iii kkkk aaaa f f f f uuuu nnnn kkkk tsstst iiiiii y y y y = = = = S S S S iiii nnnn ((((xxxx))))


Oldingi: Laboratoriya ishi ““““ OOOO tttt ooooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k k aaaa rrrrr tttt iiii nnnn ooooo kkkk i i i yyyy eee ooooo mmmmmmseeeeeekkkk iiii xxxx ffff iiii yyyy uuuu rrrrr va va va va xxxx a a a a nnnn iiii mmmm aaaa tsstst iiii yayayaya """"...Vazifa: 1) Rasm komponentlarida ko'rsatilgan tasvirni vaqti-vaqti bilan o'zgartirib, oddiy animatsiyani bajarish uchun dastur ishlab chiqish. (Rasmlar soni kamida uchta, rasmlarni o'zingiz tanlang).




Keyingi: Laboratoriya ishi ““““ PPPP oooo ssss tttt rrrrr ooooo eee nnnn iiii eee yy g rrrrr aaaa ffff iiii kkkk ooooo vvvv i i i i d d iiiiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…” 1) M ilovani o'zgartirish dan laboratoriya ishi 9 (Ma'lumotlarni jadvalda ko'rsatish). Jadvaldagi ba'zi ma'lumotlarni gistogramma yoki doiraviy diagrammada ko'rsatish imkoniyatini qo'shing. 2) Berilgan funksiyaning grafigini tuzing.

Slayd 2

“Delphida grafik ma’lumotlarni ko’rsatish” Mavzuning mazmuni: Delphida grafik ma’lumotlarni ko’rsatish usullari. Rasmlarni ko'rsatish. Geometrik shakllarni ko'rsatish. Grafik va diagrammalarni qurish.

Slayd 3

1. Grafik ma'lumotlarni ko'rsatish usullari. Delphida grafik ma'lumotlarni aks ettirishning bir necha usullari mavjud: Oldindan tayyorlangan tasvirlarni chiqarish (Image, Shape komponentlari); Grafik va diagrammalarni qurish (Chart komponenti va boshqalar); Dasturiy ravishda tasvirlarni yaratish (Canvas obyekti).

Slayd 4

Rasmlarni ko'rsatish. Oldingi mavzulardan birida Image komponentidan foydalangan holda tasvirlarni ko'rsatishni muhokama qildik. Bu erda biz Image komponentlarida ko'rsatilgan tasvirni vaqti-vaqti bilan o'zgartirish orqali oddiy animatsiyani amalga oshirish misolini ko'rib chiqamiz. Misolga o'ting.

Slayd 5

Geometrik shakllarni ko'rsatish. Shaklda oddiy geometrik shakllarning ko'rinishi Shape komponenti tomonidan ta'minlanadi.

Slayd 6

Geometrik shakllarni ko'rsatish. Shakl komponentining asosiy xususiyatlari:

Slayd 7

Geometrik shakllarni ko'rsatish. Bir nechta Shape komponentlaridan oddiy dizaynlarni yaratishingiz mumkin. Chizmadagi Shape komponentalarining joylashishini (.Left, .Top), oʻlchamini (.Width, .Height) va rangini (Brush.Color) dasturiy jihatdan oʻzgartirish orqali siz eng oddiy animatsiya elementlarini amalga oshirishingiz mumkin. Bir misolni ko'rib chiqing.

Slayd 8

Grafik va diagrammalarni qurish. Diagrammalar raqamli ma'lumotlar massivlarini ko'proq vizual tasvirlash, ularni vizual ko'rsatish va tahlil qilish uchun mo'ljallangan. Misol. Delphida diagrammalar yaratish uchun bir nechta komponentlar mavjud, ulardan biri Chart komponentidir (TeeChart Std bo'limi).

Slayd 9

Grafik va diagrammalarni qurish. Shaklga o'rnatilgandan so'ng Chart komponentining ko'rinishi:

Slayd 10

Grafik va diagrammalarni qurish. "Ob'ekt inspektori" ga qo'shimcha ravishda Chart komponentining xususiyatlariga kirishni maxsus dialog oynasini ochish orqali olish mumkin (komponentning o'ng tugmasi \ Grafikni tahrirlash ...) Ma'lumotlar seriyasini qo'shish Diagramma turini o'zgartirish

Slayd 11

Grafik va diagrammalarni qurish. Diagramma turini tanlash:

Slayd 12

Grafik va diagrammalarni qurish. Koordinata o'qlari uchun xususiyatlarni o'rnatish (eksa):

Slayd 13

Grafik va diagrammalarni qurish. Ko'rsatilishi kerak bo'lgan ma'lumotlar odatda Grafikga dasturiy tarzda uzatiladi, masalan: Series1.Clear; (aniq qator) uchun i:=1 to N do Series1.addxy(i, A[i], ‘’, clGreen); X o'qi qiymati Y o'qi qiymati X o'qi yorlig'i Diagrammadagi ma'lumotlarning rangi y = Sin(x) funktsiyasini chizish misolini ko'rib chiqing.

Slayd 14

Keyingi: Laboratoriya ishi No 13.1. "Rasmlar va geometrik shakllarni ko'rsatish, ularning animatsiyasi." Vazifa: 1) Tasvir komponentlarida ko'rsatilgan tasvirni vaqti-vaqti bilan o'zgartirib, oddiy animatsiyani amalga oshirish uchun dastur ishlab chiqish. (Rasmlar soni kamida uchta, rasmlarni o'zingiz tanlang).

Slayd 15

Vazifa: 2) Shape komponentlari yordamida rasm o‘ylab toping va chizing. Chizmadagi Shape komponentlarining joylashishini, hajmini yoki rangini dasturiy ravishda o'zgartirish orqali siz oddiy animatsiya elementlarini amalga oshirishingiz mumkin.

Slayd 16

Keyingi: Laboratoriya ishi No 12.2. "Grafiklar va diagrammalarni qurish." Topshiriq: 9-sonli laboratoriya ishidan ilovani o'zgartirish (Ma'lumotlarni jadvalda ko'rsatish). Jadvaldagi ba'zi ma'lumotlarni gistogramma yoki doiraviy diagrammada ko'rsatish imkoniyatini qo'shing. 2) Berilgan funksiyaning grafigini tuzing.

Barcha slaydlarni ko'rish