Windows. Viruslar. Noutbuklar. Internet. Idora. Kommunal xizmatlar. Haydovchilar


Download 119.81 Kb.
Sana17.06.2023
Hajmi119.81 Kb.
#1534637
Bog'liq
delphi grafika

Поиск по сайту:


Windows. Viruslar. Noutbuklar. Internet. Idora. Kommunal xizmatlar. Haydovchilar
Menyu

Siz shu yerdamisiz: uy/ Dasturlar


Delphi grafik komponentlari. "Delphi -da grafik ma'lumotlarni ko'rsatish" mavzusidagi taqdimot komponentlari tasviri va PaintBox
Vizual komponentlar kutubxonasi (VCL) Delphi bizga grafik ma'lumotlarni ko'rsatish uchun quyidagi vizual komponentalarni taqdim etadi: Tasvir (rasm), PaintBox (chizish oynasi), DrawGrid (rasmlar jadvali), Grafika (jadvallar va grafikalar), Animate (videoklip chiqishi). ), shuningdek shakl. Ushbu komponentlar Canvas xususiyatiga ega (yuqorida muhokama qilingan), bu har bir pikselga ruxsat beradi. Albatta, Delphi -da grafik bilan ishlash uchun piksel bilan piksel chizishning hojati yo'q, Delphi tizimi grafik bilan ishlash uchun kuchli vositalarni taqdim etadi.

Keling, yuqoridagi komponentlarni batafsil ko'rib chiqaylik:

Rasm komponenti (rasm)
Bu TImage sinfining ob'ekti. Grafik fayllardan o'qilgan tasvirlarni ekranda ko'rsatish uchun ishlatiladi. Odatiy bo'lib, * .bmp formatida taqdim etilgan rasmlar shaklining yuzasiga chiqadi. Rasmlarni jpg formatida ko'rsatish uchun foydalanish ko'rsatmalarida JPEG birligini ulash lozim. Komponentlar palitrasining Qo'shimcha ko'rinishida joylashgan.

Image komponentasini shaklga qo'ygandan so'ng, u tanlangan to'rtburchaklar maydon shaklini oladi.

9 -rasm - Formadagi Image komponentasi

Kerakli tasvirni tanlash uchun dialog oynasini ochish uchun ob'ektlar inspektori yordamida quyidagilarni bajaring. Buning uchun Picture xususiyatini toping va uning chap tomonidagi uchta nuqtani bosing. Rasm muharriri oynasi ochiladi va unda Load ni tanlaymiz, ochilgan oynada rasm faylini tanlaymiz.

Bundan tashqari, rasm xususiyatining LoadFromFile usulini chaqirish orqali dasturiy ravishda bajarish mumkin:

Image1.Picture.LoadFromFile ("name_pic.jpeg");

bu erda name_pic.jpeg - fayl nomi.

8 -jadval - Image komponentasining asosiy xossalari

Mulk

Tavsif


Rasm komponentlar maydonida ko'rsatiladi

Komponent o'lchamlari. Agar bu o'lchamlar rasm hajmidan kichik bo'lsa va Strech, AutoSize va Proportional xossalari False bo'lsa, tasvirning bir qismi ko'rsatiladi.

Tasvirlarni buzilmasdan avtomatik ravishda o'lchash imkonini beradi. Masshtabni bajarish uchun AutoSize xossasining qiymati False ga teng bo'lishi kerak

Rasmni Rasm komponentasi hajmiga mos ravishda avtomatik ravishda kattalashtirish (qisqartirish yoki cho'zish) imkonini beradi. Agar komponentaning o'lchami tasvir hajmiga mutanosib bo'lmasa, u holda tasvir buziladi

Rasmga mos keladigan komponentning o'lchamini avtomatik ravishda o'zgartirish imkonini beradi

Agar tasvir kengligi komponent kengligidan kichik bo'lsa, tasvir komponentining maydonidagi tasvirning gorizontal holatini aniqlashga imkon beradi.

Grafika ko'rsatish uchun sirt

Rasmning shaffof fon rangini bildiradi

1 -misol: Image komponentasi yordamida tasvirlarni ko'rish uchun dastur yozing. Dastur quyidagi imkoniyatlarga ega bo'lishi kerak:

· Papkadagi rasmlarni ko'rish;


· Rasmni to'liq hajmda yoki oynaning o'lchamiga eng mos keladigan formatda ko'rish;
· Tasvir fayllarini boshqarish, shuningdek rasmlarni chop etish, saqlash, o'chirish va o'zgartirish;
· Agar kerak bo'lsa, tasvirni tahrirlash dasturida oching;

10 -rasm - Dastur oynasi boshlanishidan oldin

Loyihani yaratish:

1. Dastur fayllari uchun papka yarating va Delphi integratsiyalashgan ishlab chiqish muhitini ishga tushiring.


2. Formaga komponentalarni qo'shing:
Birinchidan, biz rasm komponentasini shaklga joylashtiramiz, u bilan ishlashimiz kerak bo'lgan asosiy komponent. Unga qo'shimcha ravishda bizga quyidagi komponentlar kerak:

· ScrollBox To'liq o'lchamli rejimda tasvir Rasmdan tashqariga chiqsa kerak bo'ladi. Biz uning Aling xususiyatini alClient qiymatiga o'rnatdik, shunda uning o'lchami oynaning o'lchamiga mutanosib ravishda o'zgaradi. Va unga Image komponentasini joylashtiring;


· Shuningdek, biz rasmlarni saqlash va ochish uchun SavePictureDialog va OpenPictureDialog muloqot komponentlarini qo'shamiz. Bizga tasvirni tanlangan katalogga nusxalash uchun birinchisi kerak, ikkinchisi - grafik faylni ochish uchun dialogga qo'ng'iroq qilish. Ular Komponentlar palitrasining Dialoglar sahifasida joylashgan. Shuningdek, bu sahifadan bizga PrintDialog komponentasi kerak bo'ladi, uni chop etish uchun printer tanlash uchun dialog oynasi deb atashimiz kerak.
Asosiy menyuni dasturga qo'shish uchun MainMenu -ni va rang -barang dizayn uchun XPManifest -ni qo'shing
· Shuningdek, biz ishchi katalogdagi rasmlarning nomlarini biror joyda saqlashimiz kerak. Bu maqsadlar uchun ListBox komponentasi qulaydir, uni Form1 ning Create hodisasini qayta ishlashda yashirish mumkin.
· Navigatsiya tugmachalarini joylashtirish va ular bilan qulay ishlash uchun pardalar panelini qo'shing, unga biz bu tugmalarni joylashtiramiz (Oldingi rasm, Keyingi rasm, Haqiqiy o'lcham, O'lchamini o'zgartirish, O'chirish, Nusxalash, Chop etish, Tahrirlash). SpeedButton ular uchun komponent sifatida tanlangan.
· "Chap" (oldingi rasm), "O'ng" (keyingi rasm) va "Del" tugmachalarini (rasmni o'chirish) ushlab turish uchun taymer qo'shing.
· Yana bir komponent - ProgressBar, katta * .Jpg fayllarini yuklash jarayonini ko'rsatadi.
3. Tugmalarni bosish hodisasini boshqarish kodini yozing (Oldingi rasm, Keyingi rasm, Haqiqiy o'lcham, O'lchamini o'zgartirish, O'chirish, Nusxa ko'chirish, Chop etish, Tahrir qilish). MainMenu menyusi elementlarini (Chiqish, Ochish, Yopish, Yaratish) bosish hodisasini hal qilish kodini yozing.
4. Formani yaratish uchun dastlabki sozlamalarni ko'rsating. Formaning bo'sh joyini ikki marta bosing va kodni yozing protsedura tartibi TForm1.FormCreate (Yuboruvchi: TObject), 1 -ilovadagi modul kodini ko'ring.
5. Quyidagi turdagi protseduralarni yozing:
FindFileInFolder protsedurasi (yo'l, ext: string);

Bu tartib kengaytma niqobi yordamida fayllar uchun yo'l papkasini tekshiradi.

Dastur moduli kodining to'liq ro'yxati 1 -ilovada (Dasturlar ro'yxati 3) joylashgan.

1. Image komponentasining imkoniyatlarini sanab bering.


2. Image komponentasi qaysi sinfdan iborat?
3. 3. Image komponentasi sukut bo'yicha qaysi turdagi fayllarni qo'llab -quvvatlaydi?
4. 4. Image komponentasining asosiy xossalarini sanab bering.
5. 5. Image komponentasi tasvirini qaysi xossasi saqlaydi?
LABORATORIYA ISHI

MAVZU: « GrafikaDelfi- eng sodda qurilish


geometrik shakllar "

Nazariyaning qisqacha mazmuni

Delphi dasturchiga grafikani ko'rsatishning uchta usulini taqdim etadi:

dastur ishlayotganda grafiklar tuzish

oldindan yaratilgan grafik tasvirlardan foydalanish

grafik komponentlar yordamida tasvirlar yaratish

Grafik chizish uchun asboblar va chizish usullarini ta'minlaydigan maxsus sinflar yaratilgan: asboblar uchta sinfda tasvirlangan - Tfont, Tpen, Tbrush; chizish maydoni va usullari Tcanvas klassi tomonidan berilgan.

SinfTfont- tuvalda matnni ko'rsatish uchun ishlatiladigan shrift xususiyatlarini o'rnatadi. Sinfning xususiyatlari "Ko'pgina komponentlar uchun mavjud bo'lgan asosiy xususiyatlar" bo'limida tasvirlangan.

SinfTpen- chiziqlar chizilgan qalamning (qalamning) xususiyatlarini belgilaydi.

Xususiyatlari sinf Tpen:

Rang: Rang - chiziq rangi (asl qiymati qora)

Kenglik: tamsayı - chiziq qalinligi piksellarda;

Uslub = (psSolid, psDash, psDot, psdashDot, psClear) - chiziq uslubini belgilaydi (qattiq, tire, tire, tire -nuqta, ko'rinmas)

SinfCho'tkasi- tasvir yuzasini bo'yash uchun ishlatiladigan cho'tkaning xususiyatlarini belgilaydi.

Xususiyatlari sinf Cho'tkasi:

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

Uslub- cho'tka bezaklari, qiymatlarni qabul qilishi mumkin:

BsSolid - qattiq rang berish

BsClear - soyaning yo'qligi

BsVertikal - vertikal chiziqlar

BsBdiagonal - o'ng diagonal chiziqlar

BsDiagCross - egilgan hujayra

BsHorisontal - gorizontal chiziqlar

BsFdiagonal - chap diagonal chiziqlar

BsCross - hujayra

SinfTkanvas- yaratilgan tasvir joylashtirilgan sirtni va tasvir yaratiladigan asboblarni belgilaydi: shrift, qalam, cho'tka.

Odatiy bo'lib, formaning butun mijoz maydoni (sarlavhasiz, asosiy menyu va shaklni aylantiruvchi chiziqlarsiz) ish maydoni sifatida ishlatiladi (tuval, "tuval"), lekin siz forma ichida kichikroq ish joylarini ajratib qo'yishingiz mumkin. komponentlar PaintBox yoki Rasm... Tuval koordinatasining kelib chiqishi - bu ish joyining yuqori chap burchagi, ish maydonining kengligi xususiyat bilan belgilanadi. Mijoz kengligi, balandlik - mulk bo'yicha ClientHeight.

Xususiyatlari sinf Tkanvas:

Tuval: Tcanvas - chizish maydonini belgilaydi

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

Shrift: Tfont - tuvalda matnni ko'rsatish uchun shrift

Qalam: Tpen - chizish uchun qalam (qalam)

PenPos: Tpoint - tuvaldagi ko'rinmas kursorning hozirgi holati

Sharh : turi Tpoint - quyidagicha ta'riflanadi:

Tpoint = rekord kiriting

Piksellar: Tcolor - tuval piksellari ranglarini, X, Y - piksel koordinatalarini o'rnatadi. Pixels xususiyati tanlangan rang nuqtalari yordamida grafiklarni chizish uchun foydalidir.

TCanvas sinfining asosiy usullari

protsedura MoveTo(x, y: butun son); - qalamni (x, y) koordinatali nuqtaga chiziq chizmasdan harakatlantiradi.

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

Misol : Shaklning yuqori chap burchagidan o'ng pastki burchagigacha bo'lgan shaklga ko'k diagonali chiziq chizish.

Pen.color: = clblue;

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

protsedura To'rtburchak(x1, y1, x2, y2: butun son); - to'rtburchak chizadi: x1, y1 - yuqori chap burchak koordinatalari; x2, u2- pastki o'ng burchakning koordinatalari.

Misol : Shaklning o'rtasida sariq rangli 60 pikselli kvadrat chizish.

var Xc, Yc: butun son; //

Xc: = ClientWidth div 2;

Xy: = ClientHeight div 2;

Canvas.Brush.color: = sariyog ';

Canvas. to'rtburchak (xc-30, Yc-30, xc + 30, Yc + 30);

protsedura Ellips(x1, y1, x2, y2: butun son); - koordinatalari ko'rsatilgan to'rtburchakka yozilgan ellipsni chizadi.

Misol : PaintBox komponentasiga yozilgan ellipsni chizish.

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

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

protsedura Ko'pburchak(); - koordinatalar qatori tomonidan berilgan yopiq ko'pburchakni chizadi.

Misol : shakl tomonlarining o'rta nuqtalarini bog'laydigan to'ldirilgan rombni chizish

Var Xc, Yc: butun son; // shaklning mijozlar maydoni markazining koordinatalari

Xc: = ClientWidth div 2;

Xy: = ClientHeight div 2;

Canvas.Brush.Color: = Rgb (275,140,70); // apelsin Rang soyalash

Tuval.Polygon ();

oxiri;

Jarayon Ark(x1, y1, x2, y2, x3, y3, x4, y4: butun son); - to'rtburchak bilan chegaralangan ellips yoyini ko'rsatadi (x1, y1, x2, y2). Yoy koordinatali nuqtadan (x3, y3) koordinatali nuqtaga (x4, y4) 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.

Tform1.Button1Click (yuboruvchi: Tobject) protsedurasi;

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

PaintBox1 bilan qiling

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;

protsedura Akkord(x1, y1, x2, y2, x3, y3, x4, y4: butun son); - akkordni chizadi - ellipsning 2 nuqtasini bog'laydigan to'g'ri chiziq: (x3, y3) koordinatali nuqta (x4, y4) bilan nuqta.



Misol : ARC usuli, Chord usuli uchun berilgan misolda almashtiring va bu natijani oling.

protsedura Pirog(x1, y1, x2, y2, x3, y3, x4, y4: butun son); - (x3, y3) va (x4, y4) koordinatalari bilan ellips markazini bog'laydigan ellips segmentini chizadi.

Misol : ARC usuli uchun berilgan misolda PIE usulini joriy qiling va bu natijani oling.

protsedura TextOut(x, y: butun son; Matn: satr); - Matn parametrida berilgan satrni yuqori chap burchagi berilgan to'rtburchakka chiqaradi koordinatalari x, y... Shriftning xususiyatlari shrift vositasi yordamida o'rnatiladi.

Misol : shaklning pastki qismiga chizilgan grafik nomini yozing.

Tuval. Shrift balandligi: = 20 ; // belgilar balandligi 20 piksel

Canvas.Font.Color: = clblue;

Canvas.TextOut (10, ClientHeight-24, 'SIN (X) funktsiyasining grafigi');

Grafik komponentlar

Delphi foydalanuvchi tajribasini yaxshilash uchun bir nechta qutidan tashqari komponentlarni taklif qiladi. Ushbu komponentlar sahifada joylashtirilgan Qo'shimcha va Tizim komponentlar palitrasi.

KomponentRasm(SinfVaqt) - kengaytmali tashqi fayllarda saqlangan grafik tasvirlarni ko'rsatish uchun mo'ljallangan:

Iko (ikonka, piktogramma);

Bmp (bitmap, bitmap);

Wmf, .emf (metafayl);

Jpg, .jpeg (JPEG siqilgan tasvir).

Asosiy xususiyatlari :

Avtomatlashtirish: boolean - agar rost bo'lsa, komponent o'z hajmini yuklangan tasvir hajmiga moslashtiradi; standart noto'g'ri.

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

Tuval: Tcanvas - dasturni bajarish bosqichida komponentaning ichki qismini chizish uchun ishlatiladi.

Rasm: Tpicture-komponentaga joylashtirilgan rasmni aniqlaydi.

Asosiy usullari sinf Rasm:

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

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

KomponentPaintBox - chizish uchun to'rtburchaklar maydonni belgilaydi. Asosiy mulk - bu Tuval, Tcanvas sinfining barcha usullari mavjud, u mustaqil xususiyatlarga ega emas.

Misol : PaintBox1 komponentasiga yozilgan sariq ellipsni chizish.

Tform1Button1Click protsedurasi (jo'natuvchi: Tobject);

PaintBox 1. Canvas bilan

Brush.Color: = sariyog ';

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

oxiri;


KomponentBitBtn – raster tugmasi

BitBtn tugmasi, standart tugmachadan farqli o'laroq, o'z nomidan tashqari (Sarlavha), xususiyat tomonidan o'rnatilgan tasvirni o'z ichiga olishi mumkin. Glif... BitBtn standart tugmachalari to'plami mavjud, ular oldindan belgilangan xususiyatlarga ega (ma'lum bir rasm, yorliq va maqsad bilan) - standart tugma turi xususiyat orqali tanlanadi. Mehribon... Tur = (bkCustom, bkAbort, bkCancel, bkClose ...)

Vazifa raqami 1

Asosiy formada ikkita Rasm komponentasi va 4 tugma ("Rasmni yuklash", "Geometrik shaklni yaratish", "Rangni o'zgartirish", "Chiqish") bo'lgan va quyidagilarga imkon beradigan dastur yarating:

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

b) Image1 komponenti ostida “Bu fayldan olingan rasm.

(komponentning o'lchamlari va holatini har qanday o'lchash uchunRasm1 ta yozuv bo'lishi kerak
to'g'ridan -to'g'ri komponent ostida).

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

(komponentning kattaligi va holatidagi har qanday o'zgarish uchunRasm2, rasm to'g'ri qurilgan bo'lishi kerak, ya'ni. komponentga tegishli topshiriqqa muvofiqRasm2)

d) ColorDialog komponentasi yordamida foydalanuvchining iltimosiga binoan Image2 da chizilgan chiziq rangini o'zgartirish.

Vazifa raqami 2

Tasvir komponentasida tasodifiy ravishda bir nechta teglarni tartibga solish imkonini beradigan dastur yarating (masalan, "Ura!" So'zi). Amalga oshirish uchun Randomize tasodifiy sonlar generatori va Random funktsiyasidan foydalaning.

Image komponentasining o'lchamlari, Rasmda ko'rsatilgan so'z va so'zlar soni - foydalanuvchi tomonidan kiritilishi shart.

Vazifa raqami 3

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

Vazifa raqami 4

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

PaintBox1 ning har bir burchagining yoniga bu burchakning koordinatalarini yozing (PaintBox1 komponentasi joylashgan shaklning kelib chiqishiga nisbatan).

Vazifa raqami 5

BILAN


Radiogroup1 komponentidan chizilgan shakl turini, Radiogroup2 komponentidan to'ldirish rangini tanlang va Image komponentasida tanlangan shaklni chizib oling.

Vazifa raqami 6

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

PaintBox1 komponentasini 2 ta teng qismga bo'ling, har bir qismning ichida ColorDialog -da foydalanuvchi tanlagan rangga bo'yalgan ellips chiziladi.

Vazifa raqami 7

BILAN Sizga imkon beradigan dastur yarating:

ListBox ro'yxatidan geometrik shakl nomini tanlang va Image komponentasida tanlangan shaklni chizib oling. RadioGroup komponentasi "Ha" ga o'rnatilgan bo'lsa, shakl ColorDialog komponentasida foydalanuvchi tanlagan rang bilan to'ldirilishi kerak.

Vazifa raqami 8

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

PaintBox1 komponentasini 4 ta teng qismga bo'ling, har bir qismning ichida boshqa geometrik shakl (ellips, romb, uchburchak va to'rtburchak) chiziladi. Har bir shaklning rangi ColorGridda foydalanuvchi tomonidan tanlanadi.

Vazifa raqami 9

ListBox -dan geometrik nomni tanlang


shakllar (ellips, romb, to'rtburchak) va chizish
Image komponentasida tanlangan shakl. Manzil
Rasm komponentasidagi raqamlar (I chorak, II chorak,
III yoki IV chorak) va rasmning to'ldirish rangi tanlangan
RadioGroup komponentlaridan.

Vazifa raqami 10

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

Yon o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi shart.

PaintBox1 komponentasini 4 ta teng qismga bo'ling, har bir qism ichida Combobox -da foydalanuvchi tanlagan geometrik shaklni (ellips, romb, uchburchak va to'rtburchak) chiziladi. ColorBox -da foydalanuvchi tanlagan shaklning rangi.

Vazifa raqami 11

Sizga imkon beradigan dastur yarating:

Radiogrup komponentasidan chizilgan joyni tanlang


to'g'ri burchakli uchburchakning Image komponentasida o'rnatilgan
shakliga qarab to'ldirish rangi yoki kontur rangi
tasdiqlash tugmalarini yoqing. Rangni tanlang
ColorGrid komponenti.

Vazifa raqami 12

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

Yon o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi shart.

PaintBox1 komponentasini teng 2 qismga bo'ling, qismlardan birining ichida Comboboxda foydalanuvchi tanlagan geometrik shaklni (ellips, romb, uchburchak va to'rtburchak) chiziladi. ColorBox -da foydalanuvchi tanlagan shakl rangi.

Masalan, siz shaklning rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: = ColorBox1.Colors;

Vazifa raqami 13

Sizga imkon beradigan dastur yarating:

a) shaklning o'rtasida kvadrat chizish (kvadrat tomonining o'lchamini foydalanuvchi kiritadi). Yon o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi shart.

b) katakchani belgilash tugmalariga qarab kvadratni bitta diagonalga yoki ikkiga bo'ling va har bir uchburchakni boshqa rangga bo'yang. Rangni tanlash foydalanuvchi tomonidan amalga oshiriladi.

Vazifa raqami 14

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

Yon o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi shart.

PaintBox1 komponentasini 2 ta teng qismga bo'linib, bir qismiga olmos, ikkinchisiga har qanday uchburchak chiziladi. ColorBox -da foydalanuvchi tanlagan shaklning rangi.

Masalan, siz shaklning rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: = ColorBox1.Colors;

Vazifa raqami 15

Sizga imkon beradigan dastur yarating:

a) Image komponentasining gorizontal va vertikal o'lchamlarini bir xil va klaviaturadan foydalanuvchi kiritgan raqamga teng qilib o'rnating;

(agar tomonning o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi sharti bilan)

b) Image komponentasini ikkita ko'k chiziqli 4 ta teng kvadratga bo'lish;

v) har bir hosil bo'ladigan kvadrat ichida unga yozilgan aylana chiziladi (foydalanuvchi rang tanlash dialog oynasi orqali doiralar rangini tanlashiga ruxsat bering).

Vazifa raqami 16

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

Yon o'lchami matn bo'lmasligi, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi shart.

PaintBox1 komponentasini 9 ta teng qismga bo'ling va har bir hosil bo'lgan to'rtburchakni shaxmat taxtasi shaklida bo'yab qo'ying. To'ldirish rangi ColorBox -da foydalanuvchi tomonidan tanlanadi.

Masalan, siz shaklning rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: = ColorBox1.Colors;

Vazifa raqami 17

Formaga ikkita Rasm komponentasini va to'rtta tugmani joylashtiring: Chiziq rangi, To'ldirish rangi, Ok va Chiqish; va tahrir qilish komponenti.

OK tugmachasini bosganingizda, Image1da X tomoni bo'lgan kvadrat, har birining uzunligi X bo'lgan teng oyoqli, to'g'ri burchakli uchburchak tasvir2da chiziladi.

Uchburchakning tepasi Image2 ning kelib chiqishi bilan mos keladi. Kvadrat tepaliklaridan biri Image1 ning kelib chiqish vaqtiga to'g'ri keladi.

OK tugmasi faqat shakl chizish uchun chiziq rangi va to'ldirish rangi tanlanganida mavjud bo'ladi.

X - tasodifiy tanlaydi, tasodifiy funktsiyadan foydalanib va ​​X qiymatining qiymati Edit komponentida ko'rsatilishi kerak.

Vazifa raqami 18

Foydalanuvchiga PaintBox1 komponentining o'lchamlarini (piksellarda) o'lchash imkonini beradigan dastur yarating.

PaintBox1 komponentasini 4 ta teng qismga ajrating, foydalanuvchi tanlagan qismi ichida to'ldirilgan doira qurilishi kerak, uning o'lchami foydalanuvchi tomonidan o'rnatiladi. Foydalanuvchi ColorBox -da to'ldirish rangini tanlaydi.

Masalan, siz shaklning rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: = ColorBox1.Colors;

Grafik ma'lumotlarni Delphi kutubxonasida ko'rsatish uchun komponentlar berilgan, ularning ro'yxati jadvalda keltirilgan. 6.

6 -jadval

Grafik displey komponentlari

Komponent Sahifa Tavsif


Rasm Qo'shimcha Grafiklarni ko'rsatish uchun ishlatiladi
PaintBox (rasm chizish uchun oyna) Tizim Chizilgan shaklda biron bir maydon yaratish uchun ishlatiladi
DrawGrid (rasmlar jadvali) Qo'shimcha Matn bo'lmagan ma'lumotlarni satr va ustunlarda ko'rsatish uchun ishlatiladi
Diagramma (grafikalar va jadvallar) Qo'shimcha Komponent TeeChart komponentlar oilasiga mansub bo'lib, ular grafik va grafikalar yaratishda ishlatiladi
Chartfx (grafikalar va grafikalar) ActiveX Diagramma va grafik muharriri
FIBook (Excel sahifalari) ActiveX Raqamli ma'lumotlarni kiritish va qayta ishlash komponenti
VtChart (jadvallar) ActiveX Diagramma oynasi
Bundan tashqari, grafik ma'lumotni xususiyatga ega bo'lgan har qanday oyna komponentining yuzasida ko'rsatish va kiritish mumkin Tuval- tuval.

Tasvir jadvallari - DrawGrid va StringGrid komponentalari

Komponent DrawGrid grafikani o'z ichiga oladigan ilovada jadval yaratish uchun ishlatiladi. Bu komponent komponentga o'xshaydi StringGrid, chunki ikkinchisi kelib chiqqan DrawGrid. Shuning uchun, ichida DrawGrid komponentning barcha xususiyatlari, usullari, hodisalari mavjud StringGrid, matn bilan bog'liq bo'lganlar bundan mustasno, ya'ni. xususiyatlaridan tashqari Hujayralar, Ranglar, satrlar, ob'ektlar. Shu nuqtai nazardan, komponent StringGrid ga qaraganda ancha katta imkoniyatlarga ega DrawGrid, chunki u tasvirlarni ham, matnlarni ham hujayralarda saqlay oladi. Va agar siz ba'zi hujayralarga matn qo'shmoqchi bo'lsangiz DrawGrid, keyin buning uchun tuvalga matn chiqarish usullaridan foydalanish kerak bo'ladi, bu unchalik qulay emas.

Komponentlar DrawGrid va StringGrid tuvali bor Tuval, siz tasvirlarni joylashtirishingiz mumkin.

Usul bor Hujayra-to'g'ri, berilgan katak uchun tuval maydonini qaytaradi. Bu usul quyidagicha ta'riflanadi

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

qayerda ACol va ARow- hujayra kesishgan joyda 0 dan boshlanadigan ustun va satr indekslari. Bu funksiya qaytargan maydon - bu kerakli rasmni chizish mumkin bo'lgan tuval maydoni. Masalan, operator

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

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

nusxa ko'chirish usuli CopyRect jadvalning (1,1) yacheykasiga DrawGridl komponentdan olingan rasm BitMap. Bu katak jadvalda chapdan ikkinchi va yuqoridan ikkinchi, chunki indekslar 0 dan boshlanadi. E'tibor bering, agar hujayra nusxa qilingan tasvir hajmidan kichik bo'lsa, tasvirning faqat yuqori chap tomonida paydo bo'ladi. hujayrada.

Tuvalning komponentli tasviri DrawGrid va StringGrid, Har qanday komponenta tuvalida bo'lgani kabi, dastur oynasi boshqa oynalar bilan yopilganda yoki, masalan, dastur minimallashganda, o'chiriladi.

Qulay tarzda tasvirlarni hujayralarga kiritish DrawGrid voqea ishlovchilaridan foydalanish hisoblanadi OnDrawCell. Bu hodisalar jadvalning har bir katakchasi uchun uni qayta chizish paytida sodir bo'ladi. Ishlovchilar sarlavhasi quyidagicha ko'rinadi:

TForml.DrawGridlDrawCell protsedurasi (Yuboruvchi: TObject;

ACol, ARow: butun son; Rect: TRect; Shtat: TGridDrawState)

Parametr Shtat hujayraning holatini ko'rsatadi. Bu quyidagi elementlarni o'z ichiga oladigan to'plam. gdSelected- tanlangan hujayra, gdFocused- diqqat markazida bo'lgan hujayra, gdFixed- jadvalning sobit maydonidagi katak. Parametr Shtat har xil turdagi hujayralarni ko'rsatish uchun ishlatilishi mumkin.

Shakl komponenti

Shakl komponenti faqat shartli ravishda grafik ma'lumotni ko'rsatish vositalariga taalluqli bo'lishi mumkin, chunki u shunchaki mos soyali turli geometrik shakllarni ifodalaydi. Ushbu komponentning asosiy xususiyati Shakl(forma), u quyidagi qiymatlarni olishi mumkin:

To'rtburchak - to'rtburchaklar;

StSquare - kvadrat;

StRoundRect - yumaloq to'rtburchak;

StRouhdSquare - burchaklari yumaloq bo'lgan kvadrat;

StEllipse - ellips;

StCircle - bu aylana.

Komponentning yana bir muhim xususiyati Cho'tkasi(cho'tka). Bu xususiyat turdagi ob'ektdir TBrush, bir qator kichik xususiyatlarga ega, xususan rang (Brush. Rang) va uslub (Cho'tkasi. Uslubi) shaklni to'ldiring. Siz shaklning ba'zi qiymatlarini to'ldirishni ko'rishingiz mumkin. 3.2. Komponentning uchinchi o'ziga xos xususiyati Shakl- Qalam(qalam) chiziq uslubini belgilaydi.

Diagramma komponenti

Endi komponentni ko'rib chiqing Grafik Ushbu komponent sizga juda ta'sirli ko'rinadigan turli xil grafikalar va grafikalar tuzishga imkon beradi. Komponent Grafik ko'p xususiyatlarga, usullarga, hodisalarga ega, shuning uchun hammasini hisobga olsak, bu butun bir bobni ajratishga to'g'ri keladi. Shuning uchun biz faqat asosiy xususiyatlarni hisobga olish bilan cheklanamiz Grafik Qolganlari uchun siz Delphi-ning o'rnatilgan yordamini tekshirishingiz yoki diagrammalar bilan tajriba o'tkazish orqali sinab ko'rishingiz mumkin.

Komponent Grafik ob'ektlar konteyneridir Seriya- sinf vorislari TChartSeries. Har bir bunday ob'ekt ma'lum bir ko'rsatish uslubi bilan tavsiflangan ma'lumotlar seriyasini ifodalaydi: u yoki bu grafik yoki jadval. Har bir komponent Grafik bir nechta epizodlarni o'z ichiga olishi mumkin. Agar siz grafikni ko'rsatishni xohlasangiz, unda har bir qator grafikdagi bitta egri chiziqqa to'g'ri keladi. Agar siz jadvallarni ko'rsatishni xohlasangiz, ba'zi turdagi jadvallar uchun bir nechta seriyalarni bir -biriga yopishtirish mumkin, boshqalari uchun (masalan, pirogli jadvallar uchun) u yomon ko'rinadi. Ammo, bu holatda ham, siz bitta komponentni o'rnatishingiz mumkin Grafik har xil turdagi har xil turdagi bir xil ma'lumotlarning ketma -ketligi. Keyin, ulardan birini xohlagan vaqtda faol qilib, siz foydalanuvchini qiziqtirgan ma'lumotlarni aks ettiruvchi jadval turini tanlashingiz mumkin.

Bir yoki ikkita komponentni joylashtiring Grafik formada va ob'ektlar inspektorida ochilgan xususiyatlarga qarang. Keling, ulardan ba'zilariga tushuntirish beraylik.

AllowPanning - sichqonchaning o'ng tugmachasini bosib, foydalanuvchining ish vaqtida grafikning kuzatilgan qismini aylantirish qobiliyatini belgilaydi. Mumkin bo'lgan qiymatlar: pmNone - o'tish taqiqlangan, pmHori / ontal, pm Vertikal yoki pmBoth - mos ravishda faqat gorizontal yo'nalishda, faqat vertikal yo'nalishda yoki ikkala yo'nalishda ham siljishga ruxsat beriladi.

AhowZoom - foydalanuvchiga sichqoncha kursori yordamida diagramma yoki grafik qismlarini kesish orqali tasvirni ish vaqtini o'zgartirish imkonini beradi. Agar fragmentning ramkasi o'ng va pastga chizilgan bo'lsa, u holda bu bo'lak butun jadval maydoniga cho'zilgan. Va agar ramka yuqoriga va chapga chizilgan bo'lsa, asl shkalasi tiklanadi.

Sarlavha - grafik sarlavhasini belgilaydi.

Oyoq - diagramma ostidagi sarlavhani belgilaydi. Odatiy emas. Imzo matni "Matn" kichik xususiyati bilan belgilanadi.

Frame - grafik atrofidagi ramkani belgilaydi.

Ob'ektlar inspektorida sanab o'tilgan ko'pgina xususiyatlar yonida Diagramma muharririning u yoki bu sahifasiga qo'ng'iroq qilish imkonini beruvchi ellips tugmalari mavjud - bu diagrammalarning barcha xususiyatlarini o'rnatish imkonini beradigan ko'p sahifali oyna. Diagramma muharririga qo'ng'iroq qilish komponentani ikki marta bosish orqali ham mumkin Grafik yoki ustiga bosish orqali o'ng tugmasini bosing sichqonchani bosing va ochilgan menyudan Chartni tuzatish buyrug'ini tanlang.

Yuqori komponentni ikki marta bosing Grafik Sizni bir nechta yorliqlari bo'lgan Chart sahifasidagi Chart tahrirlovchisi oynasiga olib borishadi. Avvalo, undagi "Series" yorlig'i sizni qiziqtiradi. Qo'shish tugmachasini bosing - qator qo'shing. Sizni grafik yoki grafik turini tanlashingiz mumkin bo'lgan oynaga olib borishadi. V bu ish Pie - pastali jadvalni tanlang. Sarlavhalar yorlig'i yordamida siz diagramma sarlavhasini belgilashingiz mumkin, "Afsona" yorlig'i diagramma afsonasini (ramzlar ro'yxati) aks ettirish parametrlarini o'rnatishga yoki hatto ekrandan yashirishga imkon beradi, "Panel" yorlig'i panel ko'rinishini aniqlaydi. Diagramma ko'rsatiladigan 3D yorlig'i diagrammaning ko'rinishini o'zgartirishga imkon beradi: egilish, kesish, qalinlik va boshqalar.

Diagramma tahrirlovchisi bilan ishlayotganingizda va komponentalarda grafik turini tanlaganingizda Grafik sizning shaklingiz o'z ko'rinishini unga kiritilgan shartli ma'lumotlar bilan ko'rsatadi. Shuning uchun, siz o'zingizning ilovangizga turli xil variantlarni qo'llash natijasini darhol kuzatishingiz mumkin, bu juda qulay.

Bir qator yorliqlari bo'lgan Series sahifasi sizga seriyalar uchun qo'shimcha displey xususiyatlarini tanlash imkoniyatini beradi. Xususan, "Format" yorlig'idagi pirogli grafik uchun, "Diagramma" komponentasining istalgan kattaligida diagramma aylana shaklida ko'rsatilishini ta'minlaydigan "Circled Pie" opsiyasini yoqish foydalidir. "Belgilar" yorlig'ida "Style" guruhining tugmalari diagrammaning alohida segmentlari bilan bog'liq teglarda nima yozilishini aniqlaydi: qiymat - qiymat, foiz - foiz, teg - ma'lumotlar nomlari va boshqalar.

Agar xohlasangiz, Diagramma sahifasining "Seriyalar" yorlig'idagi "Klonlash" tugmasini bosish orqali ushbu Grafik komponentasiga boshqa bir xil seriyalarni qo'shishingiz mumkin, so'ngra ushbu yangi seriya uchun "O'zgartirish" tugmachasini bosing va boshqa jadval turini tanlang, masalan. .

Diagramma tahrirlovchisidan chiqing, dasturning pastki qismidagi diagramma komponentini tanlang va grafik muharriri yordamida uning xususiyatlarini qayta o'rnating. Bunday holda, siz ikkita ketma -ketlikni belgilashingiz kerak bo'ladi, agar siz grafikda ikkita egri chiziqni ko'rsatmoqchi bo'lsangiz va Chiziqli grafik turini tanlang. Qanday bo'lmasin keladi Diagrammalar haqida o'qlar va devorlarning 3D qirralarining koordinata xususiyatlarini aniqlash uchun Axis va Devorlar yorliqlaridan foydalanishingiz mumkin.

Bu ilovaning tashqi ko'rinishi dizaynini yakunlaydi. Qolgan narsa - siz ko'rsatmoqchi bo'lgan ma'lumotlarni belgilaydigan kodni yozish. Sinov dasturimiz uchun keling, pastadir jadvalida doimiy ma'lumotlarni va grafikalarda ba'zi funktsiyalarni o'rnataylik.

Ko'rsatilgan qiymatlarni o'rnatish uchun Seriya usullaridan foydalaning. Keling, faqat uchta asosiy usulga to'xtalib o'tamiz.

Usul Ochiq ketma -ketlikni avval kiritilgan ma'lumotlardan tozalaydi.

Usul Qo'shish:

Qo'shish (Const AValue: Double; Const ALabel: String; AColor: TColor),

diagrammaga yangi nuqta qo'shish imkonini beradi. Parametr AValue qo'shilgan qiymat, parametrga mos keladi ALabel- diagrammada va afsonada ko'rsatiladigan yorliq, Rangli- Rang. Parametr ALabel- ixtiyoriy, uni bo'sh qilib qo'yish mumkin: ''. Usul AddXY:

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

funktsiya grafigiga yangi nuqta qo'shish imkonini beradi. Variantlar AXValue va AYValue argument va funktsiyaga mos keladi. Variantlar ALabel va AColor usulda bo'lgani kabi Qo'shish.

Shunday qilib, bizning misolimizdagi ma'lumotlarni yuklash tartibi quyidagicha bo'lishi mumkin.

const Al = 155; A2 = 251; A3 = 203; A4 = 404; var i: so'z; boshlash

Seriesl bilan boshlaymiz

Qo'shish (Al, "Shop l", clYellow);

Qo'shish (A2, "2 -do'kon", clBlue);

Qo'shish (A3, "3 -do'kon", clRed);

Qo'shish (A4, "4 -do'kon", clPurple); oxiri;

Seriya 2. Tozalash; SeriesS.Clear; i uchun: = 0 dan 100 gacha boshlanadi

Series2.AddXY (0.02 * Pi * i, gunoh (0.02 * Pi * i)

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

ClRed); , clBlue);

Operatorlar Ochiq agar siz dastur ishlayotgan vaqtda ma'lumotlarni yangilamoqchi bo'lsangiz.

Bu bizning komponent bilan tanishuvimizni yakunlaydi. Grafik To'g'ri, biz uning imkoniyatlarining ozgina qismini ko'rib chiqdik.


"Grafik ma'lumotni Delphi -da ko'rsatish" Mavzu rejasi: 1.S S ppp oooo ssss oooo bbbb yyyy v v v v yyyy vvv oooo dddd aaaa g y g rrrr aaa ffff iiiii chchch eeee ssss kkkk iooooof yyyyniy hijniy aaa zzhzhzh EEEE nnnn nnn niiii EEEE uchun k kaaa rrrr tttt nnnk oooh ieeeee r g eee oooo mmmm EEEE tttt rrrr IIII cccch EEEE ssss kkkk İİİİİ xxxx FFFF İİİİİ Fiyatlara uuuu rrrr P oooo ssss tttt rrrr oooo EEEEnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnDIII EEEE qizg'in ia RRRRR yiii aaaa kkkk rrrr aaaa mmmm mmmm ....

1. Grafik ma'lumotlarni ko'rsatish usullari. Delphida grafik ma'lumotlarni aks ettirishning bir necha usullari mavjud: Oldindan tayyorlangan tasvirlarni chiqarish (komponentlar Image, Shape); P Grafika va diagrammalar tuzish (Grafik komponentasi va boshqalar); Tasvirlarni dasturiy shakllanishi (Canvas obyekti).

2. Ko'rsatish 2. Rasmlarni ko'rsatish. Biz oooo dddd nnnn oooo yyy va va va zzzz p p rrrr eeee dddd yyy dddd uuuu shchshch siii xxxx t t t ee mmmm da Image komponenti yordamida rasmlarni namoyish qilishni muhokama qildik .... Bu erda biz eng oddiy animatsiyani amalga oshirish misolini ko'rib chiqamiz. vaqti -vaqti bilan tasvir komponentlarida ko'rsatilgan tasvirni o'zgartirish. PPPP eeee rrrr eeee yyyy tttt iiiii n n n n aaaa p p p rrrr iiiii mmmm eeee rrrr ....

3. Ko'rsatish 3. Geometrik shakllar ko'rinishi. Va bir nechta Shape komponentalaridan siz oddiy chizmalar yaratishingiz mumkin. P Chizmadagi Shape komponentalarini o'rnini (. Chap, .Top), o'lchamini (.Endth, .Height) va rangini (Brush.Color) dasturiy ravishda o'zgartirib, siz eng oddiy animatsiya elementlarini amalga oshirishingiz mumkin. R R R R aaaa sssc ssss mmmm oooo tttt rrrr eeee tttt b'b n n p p rrrr niiiii mmmm eeee rrrr ....

4. Bino 4. Grafik va diagrammalarni qurish. Diagrammalar raqamli ma'lumotlar massivlarini vizual tarzda aks ettirish, ularni vizual ko'rsatish va tahlil qilish uchun mo'ljallangan. PPPP rrrr iiii mmmm eeee rrrr .... Delphi -da xaritalar tuzish uchun bir nechta komponentlar mavjud, ulardan biri Grafik komponenti (bo'lim TeeChart Std).

Grafika va chizmalar. Ko'rsatish uchun ma'lumotlar odatda jadvalga dasturiy ravishda o'tkaziladi, masalan: Series1.Clear; (aniq ketma -ketlik) i uchun: = 1 dan N gacha Series1.addxy (i, A [i], clGreen); X o'qi qiymati Y o'qi qiymati X o'qi yorlig'i PP jadvalidagi ma'lumotlar rangi aaaa sssc ssss mmmm rrrr aaaa ffff iiiii kkkk aaaa ffff uuuu nnnn kkkk zzzts iiiiiiiiii yyyy = = = = SSSS iiii nnnn () (((xxx) )

Keyingi: Laboratoriya ishi OOOO tttt oooo bbbb rrrr aaaa zhzhzh eeee nnnn iriii eeee k k k k aaa rrrr tttt iiiii nnnn oooo kkkk va va y y g g eee oooo rrrr va a xxxi va a xi xrxr ii xee mmmm aaaa tssts iiiii yayayaya »» »» .... Vazifa: 1) Image komponentalarida ko'rsatilgan tasvirni vaqti -vaqti bilan o'zgartirib, eng oddiy animatsiyani amalga oshirish uchun dastur ishlab chiqish. (Rasmlar soni kamida uchta, rasmlarni o'zingiz tanlashingiz mumkin).

Keyingi: Laboratoriya ishi .. Vazifa: 1) 9 -laboratoriya ishidan ilovani o'zgartiring (Ma'lumotlarni jadvalda ko'rsatish). Jadvaldagi ba'zi ma'lumotlarni chiziqli yoki pirogli diagrammada ko'rsatish qobiliyatini qo'shing. 2) Berilgan funksiyaning grafigini tuzing.

Grafika bilan ishlash Delfida bu nafaqat chiziqlar va rasmlar, balki matnli hujjatlarni chop etishdir. Shuning uchun, ichida Delphi grafikasi ozgina vaqt ajratishingiz kerak. Bilan ishlash Delfi grafikasi tuvalga kirishni nazarda tutadi - komponentlarning Canvas xususiyati. Tuval Delphi Bu tuval, bu dasturchiga har bir nuqtaga (pikselga) kirishga va rassom singari kerakli narsani ko'rsatishga imkon beradi. Albatta, piksel uchun pikselni chizish grafik bilan ishlash Delphi -da bu shart emas, Delphi tizimi kuchli quvvatni ta'minlaydi grafik vositalari bu dasturchining vazifasini engillashtiradi.

Delphi -da grafikalar bilan ishlashda dasturchi tuvalga ega (tuval, tuval - xususiyat Tuval Delphi komponentlari), qalam (xususiyat Qalam), siz chizmoqchi bo'lgan komponent yoki ob'ektning cho'tkasi (Brush xususiyati). Qalam bilan Qalam va cho'tkalar Cho'tkasi siz rangni (Rang xususiyati) va uslubni (Style xususiyati) o'zgartirishingiz mumkin. Shriftlarga kirish canvas xususiyati bilan ta'minlanadi Shrift... Bu vositalar sizga matematik va muhandislik mazmunining matnli va juda murakkab grafikalarini, shuningdek chizmalarini ko'rsatish imkonini beradi. Bundan tashqari, grafik bilan ishlash bunday resurslardan Delphida foydalanish imkonini beradi Windows grafik va video fayllar sifatida.

Albatta, Delphi -dagi barcha komponentlar bu xususiyatlarga ega emas. Yorliqda Qo'shimcha ixtisoslashgan komponent joylashgan Rasm chizish uchun maxsus mo'ljallangan, lekin ayni paytda mulk Tuval masalan, ListBox, ComboBox, StringGrid kabi tarkibiy qismlar, shuningdek bizning komponentalarimiz joylashgan Formaning o'zi bor! Bundan tashqari, Delphi hujjatlarni chop etish uchun printer kabi ob'ektning Canvas xususiyatiga ishora qiladi.

Canvas Delphi kabi ob'ektning asosiy xususiyati Piksellar turi TColor, ya'ni bu ularning rangi bilan belgilangan ikki o'lchovli nuqtalar (piksellar) majmuasidir. Tuvalga chizish tuvalning istalgan nuqtasiga berilgan rang berilganida sodir bo'ladi. Har bir pikselga Windows uchun mavjud bo'lgan har qanday rang berilishi mumkin. Masalan, operatorni bajarish

Image1.Canvas.Pixels: = clRed;

Koordinatali qizil nuqta chizishga olib keladi. Siz pikselning rangini teskari tayinlash orqali bilib olishingiz mumkin:

Rang: = Image1.Canvas.Pixels;

Turi TColor uzun tamsayı (LongInt) sifatida belgilanadi. Uning to'rt baytida ko'k (B), yashil (G) va qizil (R) ranglar nisbati haqida ma'lumotlar 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.
Delphi standart ranglar uchun matn konstantalari to'plamini belgilaydi. Siz buni Color ob'ektini ob'ektlar inspektorida ochish orqali ko'rishingiz mumkin, masalan, o'sha Shape.

Quyidagi jadvalda tuvalning xususiyatlari va usullari keltirilgan:

TextOut protsedurasi (X, Y: butun son; const Matn: WideString);
String chiqishini ishlab chiqaradi Matn(X, Y) dan boshlab - matnning yuqori chap pikseli.
TextWidth xususiyati ( var Matn: satr): butun son;
Ip uzunligini o'z ichiga oladi Matn piksellarda.
TextHeight xususiyati ( var Matn: satr): butun son;
Chiziq balandligini o'z ichiga oladi Matn piksellarda.
MoveTo protsedurasi (X, Y: butun son);
Manzil (X, Y) bilan pozitsiyani pikselga o'tkazadi.
LineTo protsedurasi (X, Y: butun son);
(X, Y) manzil bilan joriy pozitsiya nuqtasidan pikselgacha to'g'ri chiziq tortadi. (X, Y) manzili joriy pozitsiyaning nuqtasiga aylanadi.
FillRect protsedurasi ( const Rect: TRect);
To'rtburchakni to'ldiradi To'g'ri tuvalda joriy cho'tka yordamida. Bu, boshqa narsalar qatorida, tuvaldagi rasmning bir qismini o'chirish uchun ishlatilishi mumkin.

Keling, faqat shu tuval usullarini ishlatib, komponenta tuvalidagi rasmga ilova yozamiz Rasm komponentaga kiritilgan matn Eslatma:


Biz qiladigan birinchi narsa - dastur ishga tushganda o'zgaruvchilarni ishga tushirish. Chizma maydonining hajmini aniqlash kerak (buning uchun TRECT tipidagi global o'zgaruvchini yarating) va fon rangini belgilang. Rasm oq:

protsedura TForm1.FormCreate (Yuboruvchi: TObject);


boshlash
Chapga to'g'ri: = 0;
Rekt.Top :=0;
Rect.Right: = Image1.Width;
Rect.Bottom: = Image1.Height;
Image1.Canvas.Brush.Color: = clWhite;
oxiri;

Keyin biz rasmning yon tomonlarini chegaralaymiz:

protsedura TForm1.sahifasi;
boshlash
bilan Rasm 1. Tuval qilmoq
boshlash
MoveTo (0, 0);
LineTo (Rasm 1. Kenglik-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 biz protsedurani qo'shamiz sahifa tartibda FormCreate... Endi chiroyli. Keyinchalik, biz rasmni o'chirish va tozalashning oddiy tartibini yozamiz. Har qanday tasvirni yangilashdan oldin uni chaqirish kerak bo'ladi, aks holda oldingi va keyingi rasmlar bir -biriga to'g'ri keladi.

protsedura TForm1. tozalash;
boshlash
Image1. Tuval.FillRect (to'g'ri); // To'rtburchak To'g'ri oq rang bilan to'ldiriladi, rasm o'chiriladi.
oxiri;

Endi navbat matn chiqarish jarayonining o'ziga keldi. Matnni ko'rsatishni boshlaymiz (3, 3) - varaqning yuqori chap burchagida, kichik chegarasi 3 piksel. Har bir keyingi satr chiziq balandligi bilan almashtiriladi:

protsedura TForm1.prn;
var i: butun son;
boshlash
bilan Rasm 1. Tuval qilmoq
uchun i: = 1 ga Memo 1. Chiziqlar soni qilmoq
TextOut (3, 3+ (i-1) * TextHeight ("A"), Memo1.Lines);
oxiri;

Endi hamma narsa matnni ko'rsatishga tayyor. Biz buni OnChange tadbirida qilamiz:

protsedura TForm1.Memo1Change (Yuboruvchi: TObject);
boshlash
tozalash;
prn;
sahifa;
oxiri;

Va nihoyat, shrift hajmini o'zgartirish tartibi:

protsedura TForm1.Edit1Change (Yuboruvchi: TObject);
boshlash
Memo1.Font.Size: = UpDown1.Position;
Image1.Canvas.Font.Size: = UpDown1.Position;
Memo1Change (yuboruvchi);
oxiri;

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

birlik Birlik 1;

Interfeys

ishlatadi
Windows, xabarlar, SysUtils, variantlar, sinflar, grafikalar, boshqaruv elementlari, shakllar,
Muloqot oynalari, StdCtrls, Printerlar ;

Printer bilan tuval sifatida ishlaganda, chop etishni boshlash usuli chaqiriladi BeginDoc, keyin hujjat chiqariladi, bosib chiqarish usuli chaqiriladi EndDoc:

Printer.BeginDoc;
bilan Printer. Tuval qilmoq
boshlash
... Hujjatni chop etish ...
oxiri;
Printer.EndDoc;

Printer tarmog'ining kengligi va balandligi xususiyatlar orqali mavjud Printer.PageWidth va Printer.PageHeight... Siz bitta sahifada chop etishni tugatib, boshqasiga bosib chiqarishni boshlashingiz mumkin Printer.NewPage.



TEMATIK MATERIALLAR:
Hammasi haqida hamma narsa: Xitoy dasturiy ta'minotisiz salqin elf Jiayu g5 dasturiy ta'minoti
Hammasi haqida hamma narsa: Xitoy dasturiy ta'minotisiz salqin elf Jiayu g5 dasturiy ta'minoti
Alcatel One Touch: sharh, xususiyatlar, afzalliklar, mijozlar sharhlari Alcatel van touch -da xotiradan qanday foydalanish kerak
Alcatel One Touch: sharh, xususiyatlar, afzalliklar, mijozlar sharhlari Alcatel van touch -da xotiradan qanday foydalanish kerak
Vega explay uchun dasturiy ta'minot
Vega explay uchun dasturiy ta'minot
Samsung Galaxy J5 SM-J500F-ga rasmiy dasturiy ta'minotni o'rnatish
Samsung Galaxy J5 SM-J500F-ga rasmiy dasturiy ta'minotni o'rnatish
HTC firmware bir m8, bir m7
HTC firmware bir m8, bir m7
Windows Phone -da Android -ni o'rnatish - batafsil o'rnatish va sozlash bo'yicha qo'llanma
Windows Phone -da Android -ni o'rnatish - batafsil o'rnatish va sozlash bo'yicha qo'llanma
Android Meizu -da zavod sozlamalarini to'liq tiklash
Android Meizu -da zavod sozlamalarini to'liq tiklash
Xiaomi mi max dasturiy ta'minotini yangilash
Xiaomi mi max dasturiy ta'minotini yangilash
Yangilangan: 04.06.2021 103583
Agar siz xato ko'rsangiz, matnni tanlang va Ctrl + Enter tugmalarini bosing
ULASHISH:
SAYT SARLAVHALARI
Ta'mirlash
Internet
Dasturlar
Windows
Qayta tiklash
Qurilmalar
Noutbuklar
Viruslar
Windows. Viruslar. Noutbuklar. Internet. Idora. Kommunal xizmatlar. Haydovchilar
uy
Jurnal haqida
Kontaktlar
Reklama
Mualliflik huquqi © 2021 sukachoff.ru - Windows. Viruslar. Noutbuklar. Internet. Idora. Kommunal xizmatlar. Haydovchilar
Download 119.81 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling