Delphi-da grafik ma'lumotlarni aks ettirish usullari. Grafik ma'lumotni namoyish qilish uchun komponentlar ro'yxati. Grafik ma'lumotni namoyish qilish uchun komponentlar ro'yxati

Shaxsiy slaydlar uchun taqdimot tavsifi:

1 slayd

Slayd tavsifi:

2 slayd

Slayd tavsifi:

Delphi vizual dasturlash muhiti Windows singari grafik foydalanuvchi interfeysini (GDI - Graphic Delphi Interface) qo'llab-quvvatlaydi. Delphi-da grafik ma'lumotlarni aks ettirishning ikkita usuli mavjud: oldindan tayyorlangan rasmlarni namoyish qilish; dasturdan rasm chizish.

3 slayd

Slayd tavsifi:

Birinchi usul Image va Shape komponentlaridan foydalanishga asoslangan. Rasm muharriri yordamida tayyor rasmdan (piktogramma) foydalanishingiz yoki ularni o'zingiz yaratishingiz mumkin. Ikkinchi usul - bu Canvas ob'ekti yordamida dasturiy tasvirlarni yaratish.

4 slayd

Slayd tavsifi:

Delphi ixtiyorida Canvas xossasi sifatida ishlab chiqilgan maxsus ob'ekt mavjud. U faqat dastur ishlayotganda mavjud bo'ladi, shuning uchun uni faqat dastur Pascal-da kerakli kodni yozish orqali boshqarish mumkin. Agar ob'ektda Canvas xususiyati bo'lsa, uning yuzasida rasm chizishingiz mumkin. Ushbu rol uchun eng munosib nomzodlar bu shaklning o'zi va maxsus PaintBox komponentidir.

5 slayd

Slayd tavsifi:

Tuval ob'ekti xususiyatlari: Pen (Pen) - geometrik shakllarning chiziqlari va chegaralarini chizish uchun xususiyat. Ruchka grafik kursor buyruqlarini bajaradi va o'z navbatida o'ziga xos ichki xususiyatlarga ega: Rang - chiziq rangini belgilaydi (sukut bo'yicha qora); Tartibni - rasm chizish uslubi (bu erda ko'rsatilmagan ko'plab qiymatlarga ega); Style - chiziq uslubi, u quyidagi qiymatlarni qabul qilishi mumkin: psSolid - qattiq (sukut bo'yicha); psDosh - chiziqli; psDot - nuqta; rsDoshDot - nuqta chiziqcha (va boshqa xususiyatlar); Widh - chiziq kengligi (standart 1 piksel);

6 slayd

Slayd tavsifi:

Brush - quyidagi biriktirilgan xususiyatlarga ega shakllarni to'ldirish uchun xususiyat: Rang - cho'tkaning rangi (sukut bo'yicha - oq); Uslub - quyidagi qiymatlarni qabul qilishi mumkin bo'lgan cho'tka bezaklari: bsClear - tekis rang; bsGorizontal - gorizontal chiziqlar; bsVertikal - vertikal chiziqlar; bsFDiagonal - chap diagonal chiziqlar; bsBDiagonal - o'ng diagonali chiziqlar; bsCross - hujayra; bsDiagCross - egiluvchi katak;

7 slayd

Slayd tavsifi:

Shrift - quyidagi biriktirilgan xususiyatlarga ega bo'lgan matnni ko'rsatish uchun xususiyat: Rang - belgilar ranglari; Balandligi - shrift balandligi piksellarda; Ism - shrift nomi; Hajmi - shrift hajmi; Style - shrift uslubi, u quyidagi qiymatlarni qabul qilishi mumkin: fsBold - qalin; fsItalic - kursiv; fsUnline - pastki chizilgan; fsStrikeOut - aniq chiziq;

8 slayd

Slayd tavsifi:

PenPos (Pen Position) - joriy chizilgan holatini saqlash uchun xususiyat (ma'lum bir vaqtda qalamning chizilgan joyidagi holatini aniqlaydi); Piksellar - chizilgan maydonning alohida nuqtalarining koordinatalarini yozish va o'qish uchun massiv xususiyati ("kanvas").

9 slayd

Slayd tavsifi:

Tuval ob'ekti MoveTo (x, y: integer) usullari - ruchkani chiziq chizmasdan turib, belgilangan x, y koordinatalari bilan nuqtaga o'tkazadi; LineTo (xy: integer) - qalamni belgilangan pozitsiyadan x, y koordinatalari ko'rsatilgan nuqtaga chiziq chizig'i bilan siljitadi; Arc (x1, y1, x2, y2, x3, y3, x4, y4: integer) - koordinatalari (x1, y1) va (x2, y2) bo'lgan to'rtburchaklar ichiga ellips yoyini chizadi. Ark (x3, y3) va (x4, y4) nuqtalardan o'tuvchi ellips radiuslari bilan aniqlanadi;

10 slayd

Slayd tavsifi:

Chord (x1, y1, x2, y2, x3, y3, x4, y4: integer) - Arc usuli uchun ta'riflanganidek ellips akkordini chizadi; Ellips (x1, y1, x2, y2: tamsayı) - yuqori chap burchagi (x1, y1) nuqtada va pastki o'ng burchagi (x2, y2) nuqtada to'rtburchakka yozilgan ellipsni chizadi; FillRect (Rect (x1, u1, x2, u2: integer)) - to'rtburchakni joriy cho'tkada (Brush) ko'rsatilgan rang bilan to'ldiradi. Berilgan koordinatalarda to'rtburchakni ko'rsatadigan Rect funktsiyasidan foydalanadi;

11 slayd

Slayd tavsifi:

FloodFill (x, y: integer; Color: TColor; FillStyle: TFillStyle) - Brush xususiyatida ko'rsatilgan joriy rang bilan to'ldirish: FillStyle \u003d fsBorder bilan - koordinatalari x, y bo'lgan nuqtadan Rang bilan belgilangan chegaraga qadar yopiq maydon; FillStyle \u003d fsSurface bilan - sirtning Rang rangiga ega qismi; Pie (x1, y1, x2, y2, x3, y3, x4, y4: integer) - koordinatalari (x1, y1) va (x2, y2) bo'lgan to'rtburchak ichiga ellips sektorini chizadi. Sektor (x3, y3) va (x4, y4) nuqtalardan o'tgan ikkita ellips radiusi bilan aniqlanadi;

12 slayd

Slayd tavsifi:

Polyline (Points: array of TPoint) - Points massivining nuqtalarini ketma-ket bog'laydigan polilinni chizadi; Poligon (Points: array of TPoint) - Points massivining nuqtalarini ketma-ket ulab ko'pburchaklarni chizadi. Polyline usulidan farqi shundaki, u avtomatik ravishda polilin uchini boshlanishiga bog'laydi; To'rtburchak (x1, y1, x2, y2: tamsayı) - yuqori chap burchagi (x1, y1) nuqtada va pastki o'ng burchagi (x2, y2) nuqtada to'rtburchak chizadi;

13 slayd

Slayd tavsifi:

Qayta tiklash - usul tasvirni qayta chizish kerak bo'lganda chaqiriladi; RoundRect (x1, y1, x2, y2, x3, y3: integer) - burchaklari yumaloq to'rtburchak chizadi. Burchaklar ellipsning chorak qismi sifatida eni x3 va balandligi y3 ga teng; TextOut (x, y: integer, Text: String) - Matn parametrida ko'rsatilgan matnni aks ettiradi. Matn to'rtburchakga to'g'ri keladi, uning yuqori chap burchagi x, y koordinatalariga ega.

Slayd 2

"Delphi-da grafik ma'lumotlarni aks ettirish" Mavzu rejasi: Delphi-da grafik ma'lumotlarni aks ettirish usullari. Rasmlarni namoyish qilish. Geometrik shakllarning namoyishi. Grafik va diagrammalarni qurish.

Slayd 3

1. Grafik ma'lumotni namoyish qilish usullari. Delphi-da grafik ma'lumotlarni aks ettirishning bir necha usullari mavjud: Oldindan tayyorlangan tasvirlarni chiqarish (Image, Shape komponentlari); Grafik va diagrammalarni qurish (Chart komponentasi va boshqalar); Dasturiy tasvirlarni yaratish (Canvas ob'ekti).

Slayd 4

Rasmlarni namoyish qilish. Biz avvalgi mavzulardan birida Image komponentasi yordamida rasmlarning namoyish etilishini yoritdik. Bu erda biz tasvir tarkibiy qismlarida ko'rsatilgan tasvirni vaqti-vaqti bilan o'zgartirib, eng sodda animatsiyani amalga oshirish misolini ko'rib chiqamiz. Misol uchun o'ting.

Slayd 5

Geometrik shakllarning namoyishi. Formadagi eng oddiy geometrik shakllarning namoyishi Shape komponentasi tomonidan ta'minlanadi.

Slayd 6

Geometrik shakllarning namoyishi. Shape komponentasining asosiy xususiyatlari:

Slayd 7

Geometrik shakllarning namoyishi. Oddiy chizmalar yaratish uchun bir nechta Shape komponentlaridan foydalanish mumkin. Chizilgan rasmdagi Shape komponentalarining holatini (.Left, .Top), o'lchamini (.Width, .Height) va rangini (Brush.Color) dasturiy ravishda o'zgartirish orqali siz eng sodda animatsiya elementlarini amalga oshirishingiz mumkin. Bir misolni ko'rib chiqing.

Slayd 8

Grafik va diagrammalarni qurish. Diagrammalar raqamli ma'lumotlarning massivlarini vizual tarzda namoyish etish, ularni vizual ko'rsatish va tahlil qilish uchun mo'ljallangan. Misol. Delphi-da diagrammalar tuzish uchun bir nechta komponentlar mavjud, ulardan biri Chart komponentasi (TeeChart Std bo'limi).

Slayd 9

Grafik va diagrammalar tuzilishi. Shaklga o'rnatilgandan so'ng Chart komponentining ko'rinishi:

Slayd 10

Grafik va diagrammalar tuzilishi. "Ob'ektlar inspektori" ga qo'shimcha ravishda Chart komponentasining xususiyatlariga kirish uchun maxsus dialog oynasini ochish orqali erishish mumkin (\\ Edit Chart… komponentidagi o'ng tugma) Ma'lumotlar seriyasini qo'shish Diagramma turini o'zgartirish

Slayd 11

Grafik va diagrammalar tuzilishi. Diagramma turini tanlash:

Slayd 12

Grafik va diagrammalar tuzilishi. O'qlar uchun xususiyatlarni o'rnatish (Axis):

Slayd 13

Grafik va diagrammalar tuzilishi. Ko'rsatish uchun ma'lumotlar odatda Chart-ga dasturiy ravishda uzatiladi, masalan: Series1.Clear; (aniq qatorlar) i: \u003d 1 dan N gacha do1.addxy (i, A [i], ‘', clGreen) uchun; X o'qi qiymati Y o'qi qiymati X o'qi bo'yicha yorliq Diagrammadagi ma'lumotlar rangi y \u003d Sin (x) funktsiyasini chizish misolini ko'rib chiqing.

Slayd 14

Keyingi: № 13.1 laboratoriya ishi. "Rasmlar va geometrik shakllarning namoyishi, ularning animatsiyasi." Vazifa: 1) Tasvir tarkibiy qismlarida ko'rsatilgan tasvirni vaqti-vaqti bilan o'zgartirib, eng sodda animatsiyani amalga oshirish uchun dastur ishlab chiqish. (Rasmlar soni kamida uchta, rasmlarni o'zingiz tanlashingiz mumkin).

Slayd 15

Vazifa: 2) Shape komponentalaridan rasm chizish va chizish. Chizilgan rasmdagi Shape komponentlarining joylashishini, hajmini yoki rangini dasturiy ravishda o'zgartirib, eng sodda animatsiya elementlarini amalga oshiring.

Slayd 16

Keyingi: 12.2-sonli laboratoriya ishi. "Grafik va diagrammalar tuzish". Vazifa: 9-laboratoriya ishidan ilovani o'zgartiring (Ma'lumotlarni jadvalda aks ettirish). Jadvaldagi ba'zi ma'lumotlarni bar yoki pirog diagrammada aks ettirish qobiliyatini qo'shing. 2) berilgan funktsiya grafigini tuzing.

Barcha slaydlarni ko'rish

Mavzu :
Laboratoriya ishining maqsadi Delphi.

Talabalar quyidagilarni o'rganishlari kerak:

  • Diagrammalar yarating

Nazariy qism

Piktogramma Ism Sahifa Uchrashuv
Rasm Qo'shimcha
Shakl Qo'shimcha
DrawGrid

(raqamlar jadvali)

Qo'shimcha
Diagramma

(diagrammalar va grafikalar)

Qo'shimcha
PaintBox

(rasm chizish oynasi)

Tizim

Shakl Cho'tkasi

Rasm:

Diagramma:

Usul Aniq

Usul Qo'shish

Usul AddXY

PaintBox:

Vazifa 1

2-topshiriq

3-topshiriq

paintBox1 bilan, canvas do

Brush.Color: \u003d clRed;

Pen.Color: \u003d clGreen;

Pen.Style:\u003d psDash;

Pen.Color: \u003d clRed;

Izoh:

Vazifa 4

Var i: tamsayı;

Seriya 1. Aniq;

i: \u003d 0 dan 22 gacha

Seriya1.AddXY (men * 0.29,10 *gunoh (i * 0,29), ”,clGreen);,qaerda i * 0,29 (AXValue)bu argument va 10* gunoh (i * 0,29) (AYValue)

  1. y \u003d 3.2 * (14 * x)
  2. y \u003d gunoh (x)
  3. y \u003d cos (x)
  4. y \u003d x 2 + cos (x)
  5. y \u003d x 2 -4.5 * 4

Vazifa 5

comboBox1 bilan boshlanadi

Elementlar: \u003d Screen.Fonts;

  1. Loyihani saqlang va boshqaring.
  1. Ishga topshiriq.
  2. Siz yozgan kodni joylashtiring
  3. Bajarilgan ishlar bo'yicha xulosa. Mavzu : Grafik imkoniyatlaridan foydalanish.

    Laboratoriya ishining maqsadi - Grafik imkoniyatlari bilan tanishing Delphi.

    Talabalar quyidagilarni o'rganishlari kerak:

    • Har qanday grafik bo'laklarni yarating J
    • Grafik imkoniyatlaridan foydalaning
    • Grafik imkoniyatlarini qo'llang
    • Diagrammalar yarating

    Nazariy qism

    Delphi sizga grafikalarni namoyish eta oladigan dasturlarni ishlab chiqish imkoniyatini beradi: diagrammalar, chizmalar, illyustratsiyalar. Grafik ma'lumotlarni Delphi kutubxonasida aks ettirish uchun quyidagi jadvalda keltirilgan komponentlar berilgan:

    Piktogramma Ism Sahifa Uchrashuv
    Rasm Qo'shimcha Grafika: eskizlar, bitmapalar va metafayllarni namoyish qilish uchun foydalaniladi
    Shakl Qo'shimcha Geometrik ibtidoiylarni qurish uchun foydalaniladi
    DrawGrid

    (raqamlar jadvali)

    Qo'shimcha Ilovada grafikani o'z ichiga oladigan jadval yaratish uchun foydalaniladi
    Diagramma

    (diagrammalar va grafikalar)

    Qo'shimcha Diagrammalar va grafikalar yaratish uchun foydalaniladi
    PaintBox

    (rasm chizish oynasi)

    Tizim Shaklda biron bir maydon yaratish uchun foydalaniladi

    Bundan tashqari, siz Canvas xususiyatiga ega bo'lgan har qanday oyna komponentining yuzasida grafik ma'lumotlarni aks ettirishingiz va kiritishingiz mumkin. Ilovani bajarish jarayonida yaratilgan chizmalar harakatsiz yoki animatsion bo'lishi mumkin.

    Shakl : faqat shartli ravishda grafik ma'lumotni namoyish qilish vositalariga tegishli bo'lishi mumkin, chunki u oddiygina soyali turli xil geometrik shakllarni aks ettiradi. Ushbu komponentning asosiy xususiyati Shape bo'lib, u qiymatlarni qabul qilishi mumkin, Cho'tkasi (cho'tka) - bu xususiyat TBrush turidagi ob'ekt bo'lib, unda bir qator subproperties mavjud, xususan: rangni to'ldirish rang (Brush.Color) va uslub (Brush.Style). Shape komponentasining uchinchi o'ziga xos xususiyati - bu chiziq uslubini belgilaydigan Pen.

    Rasm: asosiy xususiyatlar: Rasm - rasmni yuklash uchun mas'uldir, Stretch - Rasm komponentasidagi rasmning kattaligi uchun mas'uldir, AutoSize - rasm o'lchamini hisobga olgan holda, rasm yuklangan komponentning o'lchamidan mas'uldir.

    Diagramma: Ko'rsatilgan qiymatlarni o'rnatish uchun Seriya usullaridan foydalaning. Keling, ulardan uchtasini ko'rib chiqaylik.

    Usul Aniq ketma-ketlikni ilgari kiritilgan ma'lumotlardan tozalaydi.

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

    diagramaga yangi nuqta qo'shishga imkon beradi. AValue parametri funktsiyaning qo'shilgan qiymatiga mos keladi va funktsiya argumentining qiymati avtomatik ravishda to'ldiriladi, shuning uchun uni o'rnatishga hojat yo'q, ALabel parametri diagrammada va afsonada ko'rsatiladigan ism, AColor rang. ALabel parametri ixtiyoriy, uni bo'sh belgilashingiz mumkin: ”.

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

    funktsiya grafigiga yangi nuqta qo'shishga imkon beradi. AXValue va AYValue parametrlari argument va funktsiyaga mos keladi. ALabel va AColor parametrlari Add usuli bilan bir xil.

    PaintBox: tizim sahifasida bo'ling. Bu o'zboshimchalik bilan rasmlarni chizishingiz mumkin bo'lgan oddiy kanvas oynasi. Grafik vositalar Shrift, Brush va Pen xususiyatlarida mavjud. Tuval (tuval) komponentning Canvas xossasida joylashgan. Rasmning o'zi onPaint voqealar ishlovchisida dasturlashtirilgan.

    Vazifa 1

    1. Sizni Image komponentasi bilan tanishtiradigan dastur yarating. Komponentlarni joylashtirish kerak: Label, Image, BitBtn, Button. Ko'rsatilgandek imzo qo'ying va har qanday rasmni yuklang. Komponentlarni Image1-da rasm ramkalarga mos keladigan qilib sozlang va Image2-da rasm uning o'lchamiga mos keladi. Maslahatlar bering, har bir rasm ustiga suzib kirganingizda, Hint xususiyati maslahatlar uchun javobgardir, aks ettirish uchun siz matnni kiritishingiz va ShowHint xususiyatidagi ko'rsatmalarni yoqishingiz kerak.

    2-topshiriq

    1. Shakl hajmini kattalashtiring va tarkibiy qismlarni qo'shing: Shape, Label. Obuna bo'lish.
    2. Har bir Shape komponentiga rasmga ko'ra turli xil uslublarni qo'llang:

    3-topshiriq

    1. Masalan, PaintBox komponentasini forma ustiga joylashtiramiz. OnPaint ishlov beruvchisi:

    paintBox1 bilan, canvas do

    Brush.Color: \u003d clRed;

    Pirog (12,100,140,280,12,100,140,280);

    Pen.Color: \u003d clGreen;

    Pen.Style:\u003d psDash;

    To'rtburchak (120,60, kenglik, balandlik);

    Pen.Color: \u003d clRed;

    Polyline ();

    TextOut (75,20, 'Matningiz shu erda bo'lishi mumkin!');

    Izoh:Birinchi satrda plomba rangi o'rnatiladi: Brush.Color: \u003d clRed; Ikkinchisi ellipsning bir qismini tortadi: Pirog (12,100,140,280,12,100,140,280); Quyidagi satrlarda qalam parametrlari (shakllar qanday qilib chegaraga ega bo'ladi), kengligi, rangi va chiziq uslubi o'rnatiladi: Pen.Width: \u003d 4; Pen.Color: \u003d clGreen; Pen.Style:\u003d psDash; Ammo bu holda biz bitta qattiq chiziqni ko'ramiz, chunki qalinligi bitta pikseldan ko'p bo'lsa, chiziq uslubi psSolid (qattiq) bo'ladi. Kvadrat chizish uchun quyidagi satr javob beradi: To'rtburchak (120,60, kenglik, balandlik); Quyidagi buyruq qizil yulduzcha chizadi: Polyline (); Matn chiqishi uchun oxirgi satr javobgardir: TextOut (75,20, "Sizning matningiz shu erda bo'lishi mumkin!");

    Vazifa 4

    1. y \u003d 10 * sin (x) funksiyaning berilgan grafigini chizadigan dastur tuzing.

    1. Formani kattalashtiring va unga Qo'shimcha yorlig'idan TChart komponentasini joylashtiring va Button, Label komponentasini joylashtiring. Rivojlanish uchun yangi TChart-ni qulay o'lchamga cho'zing.
    2. Komponentni ikki marta bosish orqali grafik muharririga o'tamiz. Seriyalar ko'rinishini tahrirlash va sozlash. Buning uchun Qo'shish tugmachasini bosing va chiziqli diagramma turini tanlang va OK tugmasini bosing. Sarlavhani o'zgartirish uchun Title tugmasini bosing va y \u003d 10 * sin (x) formulasini kiriting.
    3. Button komponentasining OnClick hodisasida diagramma chizish uchun kodni yozing:

    Var i: tamsayı;

    Seriya 1. Aniq;

    i: \u003d 0 dan 22 gacha

    Series1.AddXY (i * 0.29,10 * sin (i * 0.29), ”, clGreen);

    Izoh: Uslublar seriyasi 1. Aniq; ketma-ketlikni ilgari kiritilgan ma'lumotlardan tozalaydi, shunda yangilashda eski qiymatlar bo'lmaydi. Grafika chizish uchun sizga qiymatlar kerak bo'ladi, bizning holatlarimizda 22 qiymatlari kerak, bunda grafik funktsiya bilan chiziladi Seriya1.AddXY (men * 0.29,10 *gunoh (i * 0,29), ”,clGreen);,qaerda i * 0,29 (AXValue)bu argument va 10* gunoh (i * 0,29) (AYValue)funktsiyani hisoblash qiymati "(ALabel) diagrammada va afsonada ko'rsatiladigan nom bo'sh qoldirilishi mumkin va clGreen (AColor) - chiziq rangidir.

    1. Quyidagi vazifani o'zingiz bajaring: funktsiyalar grafigini chizish
    2. y \u003d 3.2 * (14 * x)
    3. y \u003d gunoh (x)
    4. y \u003d cos (x)
    5. y \u003d x 2 + cos (x)
    6. y \u003d x 2 -4.5 * 4

    Vazifa 5

    1. Tizim shrift belgilarini ko'rishga imkon beradigan dastur yarating.
    2. Shaklni kattalashtiring, DrawGrid1, ComboBox1, Label-ni joylashtiring. DrawGrid1 komponentasi uchun quyidagi xususiyatlarni o'rnating: RowCount \u003d 7, ColCount \u003d 32, FixedCols \u003d 0, FixedRows \u003d 0, DafaultColWidth \u003d 20, DefaultRowHeight \u003d 20.
    3. Har bir katak tarkibini qayta chizish uchun DrawGrid1 komponentasi uchun OnDrawCell voqea ishlovchisini yarating. Shrift belgilarini ko'rsatish uchun DrawGrid1 komponentasining Canvas xususiyatidan foydalanamiz. Bizga to'g'ridan-to'g'ri Canvas xususiyatining TextRect usuli kerak bo'ladi. Ushbu usul ma'lum bir katakchada matnli ma'lumotlarni aks ettirish uchun ishlatiladi. Tadbirni boshqaruvchi quyidagicha bo'ladi:

    DrawGrid1.Canvas.textrect (to'g'ri, Rect.Left, Rect.Top, char ((ARow + 1) * 32 + acol));

    1. Loyihani saqlang. Jadval katakchalari belgilarni standart tizim shriftida aks ettirganligiga ishonch hosil qiling.
    2. Shriftni tanlash uchun biz ComboBox1 komponentidan foydalanamiz. Ushbu komponent barcha ekran shriftlarini o'z ichiga olishi uchun forma yaratishda ularni ro'yxatga qo'shish kerak. Barcha ekran shriftlarining nomlarini TScreen tipidagi Screen global o'zgaruvchisi yordamida topish mumkin. Ushbu o'zgaruvchi Delphi-ning barcha dasturlariga avtomatik ravishda qo'shiladi. Screen o'zgaruvchisi dastur ekranining hozirgi holati to'g'risida ma'lumotlarni o'z ichiga oladi: dastur tomonidan ishlatiladigan shakllar va ma'lumotlar modullarining nomlari; faol shakl va ushbu shaklda ishlatiladigan komponentlar to'g'risidagi ma'lumotlar; ishlatiladigan ekranning o'lchamlari va o'lchamlari; dastur uchun mavjud bo'lgan kursorlar va shriftlar haqida ma'lumot. Ilova uchun mavjud bo'lgan shriftlar haqidagi ma'lumotlar Screen o'zgaruvchisining Font xususiyatida joylashgan.
    3. Shakl uchun onCreate voqea ishlovchilarini yarating va unga bayonotlar qo'shing:

    comboBox1 bilan boshlanadi

    Elementlar: \u003d Screen.Fonts;

    ItemIndex: \u003d Items.IndexOf (Font.Name);

    1. Loyihani saqlang va boshqaring. DrawGrid1 komponentasi ComboBox1 da o'rnatilgan shrift belgilarini o'z ichiga oladi.
    2. DrawGrid1 va ComboBox1 uchun shrift nomining qiymatini bog'lash uchun boshqa voqea ishlovchilarini yarataylik:

    DrawGrid1.Font.Name:\u003dComboBox1.Text;

    1. Loyihani saqlang va boshqaring.
    1. Laboratoriya ishlarining soni, mavzusi, maqsadi.
    2. Ishga topshiriq.
    3. Kirish, oraliq va natija ma'lumotlarining turini ko'rsatgan holda tavsifi.
    4. Dasturlash tilidagi dastur.
    5. Dasturni bajarish natijasi (Kiritilgan ma'lumotlar va olingan ma'lumotlar)
    6. Siz yozgan kodni joylashtiring
    7. Bajarilgan ishlar bo'yicha xulosa.

Grafika bilan ishlash Delphi-da bu nafaqat chiziqlar va rasmlar, balki matnli hujjatlarni chop etish hamdir. Shuning uchun Delphi grafikasi ozgina vaqt talab qilish kerak. Bilan ishlash delphi-dagi grafikalar tuvalga kirishni o'z zimmasiga oladi - komponentlarning Canvas xususiyati. Canvas Delphi bu dasturchiga har bir nuqtaga (piksel) kirish huquqini beradigan va rassom singari talab qilinadigan narsani namoyish etadigan tuvaldir. Albatta uchun piksel bilan piksel chizish grafikalar bilan ishlash Delphi-da bu shart emas, Delphi tizimi kuchli quvvatni ta'minlaydi grafik vositalardasturchining vazifasini engillashtiradigan.

Delphi-da grafikalar bilan ishlashda dasturchi tuvali (tuval, tuval - xususiyatga ega Tuval Delphi komponentlari), qalam (mulk Qalam), bo'yashni xohlagan komponent yoki ob'ektning cho'tkasi (Brush xususiyati). Qalam bilan Qalam va cho'tkalar Cho'tkasi rangni (Color xususiyati) va uslubni (Style xususiyati) o'zgartirishingiz mumkin. Shriftlarga kirish canvas xususiyati tomonidan ta'minlanadi Shrift... Ushbu vositalar matematik va muhandislik tarkibidagi matnlarni ham, murakkab grafikalarni ham, rasmlarni ham namoyish etishga imkon beradi. Bundan tashqari, grafikalar bilan ishlash Delphi-da bunday manbalardan foydalanishga imkon beradi Windows grafik va videofayllar sifatida.

Albatta, Delphi-dagi barcha komponentlar bu xususiyatlarga ega emas. Yorliqda Qo'shimcha ixtisoslashgan komponent joylashgan Rasmrasm chizish uchun maxsus ishlab chiqilgan, lekin ayni paytda mulkdir Tuval masalan, ListBox, ComboBox, StringGrid kabi tarkibiy qismlar, shuningdek bizning tarkibiy qismlarimizni joylashtiradigan 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 ranglari bilan belgilangan ikki o'lchovli nuqtalar (piksellar) massivi. Tuvalga rasm chizish, tuvalning istalgan nuqtasiga belgilangan rangni berish paytida yuz beradi. Har bir pikselga Windows uchun mavjud bo'lgan har qanday rang berilishi mumkin. Masalan, operatorni bajarish

Image1.Canvas.Pixels: \u003d clRed;

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

Rang: \u003d Image1.Canvas.Pixels;

Turi TColor uzun butun son sifatida aniqlangan (LongInt). Uning to'rt baytida ko'k (B), yashil (G) va qizil (R) ranglarning nisbati to'g'risida ma'lumotlar mavjud. Hexadecimal 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 tayinlash kerak rang $ 000000FF.
Delphi standart ranglar uchun matn doimiylari to'plamini belgilaydi. Siz buni Color Inspector-da, masalan, xuddi shu Shape-ning Object Inspector-da ochish orqali ko'rishingiz mumkin.

Quyidagi jadvalda tuvalning ba'zi xususiyatlari va usullari keltirilgan:

TextOut protsedurasi (X, Y: Integer; konst Matn: WideString);
String chiqishi ishlab chiqaradi Matn (X, Y) dan boshlab - matnning yuqori chap piksel qismi.
TextWidth xususiyati ( var Matn: String): Integer;
Ip uzunligini o'z ichiga oladi Matn piksellarda.
TextHeight xususiyati ( var Matn: String): Integer;
Chiziq balandligini o'z ichiga oladi Matn piksellarda.
MoveTo protsedurasi (X, Y: Integer);
Joylashuvni (X, Y) manzil bilan pikselga o'tkazadi.
LineTo protsedurasi (X, Y: Integer);
(X, Y) manzili bilan joriy pozitsiya nuqtasidan pikselga to'g'ri chiziq tortadi. Manzil (X, Y) joriy pozitsiyaning nuqtasiga aylanadi.
FillRect protsedurasi ( konst Rect: TRect);
To'rtburchakni to'ldiradi Rekt joriy cho'tka yordamida tuvalda. Bundan tashqari, tuvaldagi rasmning bir qismini o'chirish uchun ham foydalanish mumkin.

Faqatgina ushbu tuval usullaridan foydalanib, komponentning tuvaliga rasm chizish uchun dastur yozamiz Rasm komponentga kiritilgan matn Memo:

Dastlabki narsa - dastur boshlanganda o'zgaruvchilarni ishga tushirish. Chizilgan maydon hajmini aniqlash kerak (buning uchun TRect tipidagi global o'zgaruvchini yarating) va fon rangini berish kerak Rasm oq:

protsedura TForm1.FormCreate (Yuboruvchi: TObject);
boshlash
Rect.Led: \u003d 0;
Rect.Top:\u003d0;
Rect.Right: \u003d Image1.Width;
Rect.Bottom: \u003d Image1.Height;
Image1.Canvas.Brush.Color: \u003d clWhite;
oxiri;

Keyin biz tasvirning yon tomonlari atrofida chegara chizamiz:

protsedura TForm1.sahifa;
boshlash
bilan Rasm 1. Tuval qil
boshlash
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, ammo ramka hali ko'rsatilmaydi. Shuning uchun biz protsedurani qo'shamiz sahifa protsedurada FormCreate... Endi chiroyli. Keyinchalik, biz rasmni o'chirish, tozalashning oddiy tartibini yozamiz. Har qanday rasmni yangilashdan oldin uni chaqirish kerak bo'ladi, aks holda avvalgi va keyingi rasmlar bir-birining ustiga chiqadi.

protsedura TForm1. tozalash;
boshlash
Image1.Canvas.FillRect (Rect); // To'rtburchak Rekt oq rangni to'ldiradi, tasvir o'chiriladi.
oxiri;

Endi navbat matn chiqarish protsedurasining o'zi. Matnni (3, 3) nuqtadan - varaqning yuqori chap burchagidan, kichik chegarasi 3 pikseldan boshlaymiz. Har bir keyingi satr chiziq balandligi bilan qoplanadi:

protsedura TForm1.prn;
var i: tamsayı;
boshlash
bilan Rasm 1. Tuval qil
uchun i: \u003d 1 ga Memo1.Lines.Count qil
TextOut (3, 3+ (i-1) * TextHeight ("A"), Memo1.Lines);
oxiri;

Endi hamma narsa matnni namoyish qilishga tayyor. 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: \u003d UpDown1.Position;
Image1.Canvas.Font.Size: \u003d UpDown1.Position;
Memo1Change (Yuboruvchi);
oxiri;

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

birlik Birlik1;

Interfeys

foydalanadi
Windows, Messages, SysUtils, Variantlar, Classes, Graphics, Controls, Formalar,
Dialoglar, StdCtrls, Printerlar ;

Tuval sifatida printer bilan ishlashda, bosib chiqarishni boshlash usuli chaqiriladi BeginDoc, keyin hujjat chiqariladi, chop etish usulni chaqirish bilan tugaydi EndDoc:

Printer.BeginDoc;
bilan Chop etish uchun mato qil
boshlash
... Hujjatni chop etish ...
oxiri;
Printer.EndDoc;

Printer vebining kengligi va balandligi xususiyatlar orqali mavjud Printer.PageWidth va Printer.PageHeight... Metod yordamida bir sahifada bosib chiqarishni tugatishingiz va boshqa sahifada chop etishni boshlashingiz mumkin Printer.NewPage.

Laboratoriya ishi

MAVZU: « GrafikaDelphi - eng oddiy qurilish
geometrik shakllar "

Nazariyaning qisqacha mazmuni

Delphi ishlab chiquvchiga grafikani namoyish etishning uchta usulini taqdim etadi:

    dastur ishlayotganda grafiklarni qurish

    oldindan yaratilgan grafik tasvirlardan foydalanish

    grafik komponentlardan foydalangan holda tasvirlarni yaratish

Grafiklarni chizish uchun rasm chizish vositalari va usullarini ta'minlovchi maxsus sinflar yaratilgan: asboblar uchta sinfda tasvirlangan - Tfont, Tpen, Tbrush; chizish maydoni va usullari Tcanvas klassi tomonidan taqdim etilgan.

SinfTfont - matoni tuvalda aks ettirish uchun ishlatiladigan shriftning xususiyatlarini belgilaydi. Sinfning xususiyatlari "Ko'pgina komponentlar uchun mavjud bo'lgan asosiy xususiyatlar" bo'limida tasvirlangan.

SinfTpen- chiziqlar chizilgan qalam (qalam) xususiyatlarini o'rnatadi.

Xususiyatlarisinf Tpen:

Rang: Tcolor - chiziq rangi (standart - qora)

Kengligi: tamsayı - pikseldagi chiziq qalinligi;

Uslub \u003d (psSolid, psDash, psDot, psdashDot, psClear) - chiziq uslubini belgilaydi (qattiq, kesik, kesik, chiziqcha, ko'rinmas)

SinfCho'tkasi- rasm sirtlarini bo'yash uchun ishlatiladigan cho'tkaning xususiyatlarini belgilaydi.

Xususiyatlari sinf Cho'tkasi:

Rang: Tcolor - cho'tka rangi (asl qiymati oq)

Uslub - cho'tka bezagi, quyidagi qiymatlarni qabul qilishi mumkin:

BsSolid - qattiq rang

BsClear - soyaning etishmasligi

BsVertikal - vertikal chiziqlar

BsBdiagonal - o'ng diagonali chiziqlar

BsDiagCross - egiluvchi katakcha

Gorizontal - gorizontal chiziqlar

BsFdiagonal - chap diagonal chiziqlar

BsCross - hujayra

SinfTkanvas - yaratilgan tasvir joylashtirilgan yuzani va tasvir yaratilgan asboblarni: shrift, qalam, cho'tkani belgilaydi.

Odatiy bo'lib, formaning barcha mijoz maydoni (sarlavha, asosiy menyu va shaklni siljitish satrlarisiz) ish maydoni sifatida ishlatiladi (tuval, "tuval"), lekin siz komponentlar yordamida formadagi kichik ish joylarini chizishingiz mumkin PaintBox yoki Rasm... Tuval koordinatasining kelib chiqishi ish joyining yuqori chap burchagidir, ish maydonining kengligi mulk bilan belgilanadi ClientWidth, balandligi - mulk ClientHeight.

Xususiyatlari sinf Tkanvas:

Tuval: Tcanvas - chizilgan maydonni belgilaydi

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

Shrift: Tfont - matoni tuvalda aks ettirish uchun shrift

Qalam: Tpen - rasm chizish uchun qalam (qalam)

PenPos: Tpoint - ko'rinmas kursorning tuvaldagi hozirgi holati

Izoh : Tpoint turi - quyidagicha aniqlanadi:

Tpoint \u003d yozuv yozing

Piksellar:Tcolor - tuval piksellarining ranglarini, X, Y - piksel koordinatalarini o'rnatadi. Pixels xususiyati tanlangan rangning nuqtalari yordamida grafikalar tuzish uchun foydalidir.

TCanvas sinfining asosiy usullari

    protsedura Ko'chirish(x, y: tamsayı); - koordinatalari (x, y) bo'lgan nuqtaga chiziq chizmasdan qalamni harakatga keltiradi.

    Jarayon Chiziq(x, y: tamsayı); - koordinatalari (x, y) bilan joriy nuqtadan nuqtaga chiziq tortadi.

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

Pen.color: \u003d clblue;

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

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

Misol : Shaklning o'rtasida sariq rang bilan to'ldirilgan 60 pikselli kvadrat chizish.

varXc, Yc: butun son; //

Xc: \u003d ClientWidth div 2;

Xy: \u003d ClientHeight div 2;

Canvas.Brush.color: \u003d clyellow;

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

    protsedura Ellips(x1, y1, x2, y2: tamsayı); - koordinatalari ko'rsatilgan to'rtburchakka kiritilgan ellipsni chizadi.

Misol : PaintBox komponentasiga kiritilgan ellipsni chizish.

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

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

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

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

VarXc, Yc: butun son; // shaklning mijoz maydoni markazining koordinatalari

Xc: \u003d ClientWidth div 2;

Xy: \u003d ClientHeight div 2;

Canvas.Brush.Color: \u003d Rgb (275,140,70); // apelsin rang soyalash

Canvas.Polygon ();

oxiri;

    Jarayon Ark(x1, y1, x2, y2, x3, y3, x4, y4: tamsayı); - to'rtburchak (x1, y1, x2, y2) bilan chegaralangan ellips yoyini aks ettiradi. Yoy koordinatalari (x3, y3) bo'lgan nuqtadan koordinatalari (x4, y4) bo'lgan nuqtagacha aks etadi. va boshqalar soat yo'nalishi bo'yicha.

Misol : komponentning yuqori tomonining o'rtasini bog'lovchi elliptik yoyni chizish
PaintBox o'ng tomonining o'rtasi bilan.

Tform1.Button1Click protsedurasi (Yuboruvchi: Tobject);

Var X3, y3, x4, y4: tamsayı;

PaintBox1 bilan bajaring

Canvas.Pen.Color: \u003d clWhite;

Canvas.Pen.Width: \u003d 3;

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

X3: \u003d ClientWidth div 2;

X4: \u003d ClientWidth;

Y4: \u003d ClientHeight div 2;

Canvas.Pen.Color: \u003d clMaroon;

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

Oxiri;

    protsedura Akkord (x1, y1, x2, y2, x3, y3, x4, y4: tamsayı); - akkord - ellipsning 2 nuqtasini bog'laydigan to'g'ri chiziq: koordinatalari (x3, y3) bo'lgan nuqta (x4, y4) bilan nuqta.

Misol : ARC usuli uchun berilgan misolda Chord usuli bilan almashtiring va ushbu natijani oling.

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

Misol : ARC usuli uchun berilgan misolda PIE usulini kiriting va ushbu natijani oling.

    protsedura TextOut(x, y: integer; Matn: string); - Text parametrida berilgan qatorni to'rtburchakka chiqaradi, uning yuqori chap burchagi x, y koordinatalari bilan belgilanadi. Shrift xususiyatlari Shrift vositasi bilan o'rnatiladi.

Misol : shaklning pastki qismiga chizilgan grafik nomini yozing.

Canvas.Font.Boy: \u003d 20 ; // belgilar balandligi 20 piksel

Canvas.Font.Color: \u003d clblue;

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

Grafika komponentlari

Delphi foydalanuvchi tajribasini oshirish uchun bir qator tashqarida bo'lgan komponentlarni taklif qiladi. Ushbu komponentlar sahifada joylashtirilgan Qo'shimcha va Tizim komponentlarning palitrasi.

KomponentRasm(sinfVaqt) - kengaytmali tashqi fayllarda saqlanadigan grafik tasvirlarni namoyish qilish uchun mo'ljallangan:

    Ico (ikonka, piktogramma);

    Bmp (bitmap, bitmap);

    Wmf, .emf (metafayl);

    Jpg, .jpeg (JPEG siqilgan rasm).

Asosiy xususiyatlari :

Avtomatlashtirish: mantiqiy - agar rost bo'lsa, komponent o'z hajmini yuklangan rasm o'lchamiga moslashtiradi; default false.

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

Tuval: Tcanvas - ishlash vaqtida komponent ichiga rasm chizish uchun ishlatiladi.

Rasm: Tpicture -komponentga joylashtirilgan rasmni belgilaydi.

Asosiy usullari sinf Tasvir:

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

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

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

Misol : PaintBox1 komponentiga yozilgan sariq ellipsni chizish.

Tform1Button1Click protsedurasi (jo'natuvchi: Tobject);

PaintBox1.Canvas bilan bajaring

Brush.Color: \u003d xushbichim;

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

oxiri;

KomponentBitBtnraster tugmasi

BitBtn tugmasi, odatdagidan farqli o'laroq, o'z nomidan tashqari (Taglavha), xususiyat tomonidan o'rnatilgan rasmni o'z ichiga olishi mumkin. Glif... Oldindan aniqlangan xususiyatlarga ega (ma'lum rasm, yorliq va maqsad bilan) BitBtn standart tugmachalari to'plami mavjud - standart tugma turi xususiyat orqali tanlanadi Yaxshi... Turi \u003d (bkCustom, bkAbort, bkCancel, bkClose ...)

Vazifa raqami 1

Ikkita Image komponentasi va asosiy formadagi 4 tugmachani o'z ichiga olgan dastur yarating ("Rasmni yuklash", "Geometrik shaklni yaratish", "Rangni o'zgartirish", "Chiqish") va quyidagilarga imkon beradi:

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

b) Image1 komponentasi ostida “Bu fayldan rasm.

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

c) Image2 komponentasi ichida geometrik figura chizish: Image komponentining o'rtasini Image komponentasining pastki va o'ng tomonlari o'rtasi bilan bog'lovchi to'ldirilgan ellips segmenti.

(komponentning o'lchamlarini o'zgartirish va joylashishni aniqlash uchunRasm2, raqam to'g'ri qurilgan bo'lishi kerak, ya'ni. komponentga tegishli topshiriqqa muvofiqRasm2)

d) ColorDialog komponentasi yordamida foydalanuvchi talabiga binoan Image2 da chizilgan rasmning satr rangini o'zgartirish.

Vazifa raqami 2

Tasviriy komponentdagi tasodifiy bir nechta yorliqlarni joylashtirishga imkon beradigan dastur yarating (masalan, "Ura!" So'zi). Amalga oshirish uchun Randomize tasodifiy sonlar generatori va Random funktsiyasidan foydalaning.

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

Vazifa raqami 3

ListBox-dan geometrik shakl nomini tanlashga va tanlangan shaklni Image qismiga chizishga imkon beradigan dastur yarating. Shaklning rangi RadioGroup komponentidan tanlanadi.

Vazifa raqami 4

PaintBox1 komponentini 4 ta teng qismga bo'ling, har bir qismini har xil rangda bo'yashingiz kerak, masalan: ko'k, sariq, yashil, qizil.

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

Vazifa raqami 5

Dan

radiogroup1 komponentasidan chizilgan shakl turini, Radiogroup2 komponentidan plomba rangini tanlang va Image komponentasida tanlangan shaklni chizib oling.

Vazifa raqami 6

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

PaintBox1 komponentini 2 ta teng qismga bo'ling, har bir qism ichida ColorDialog-da foydalanuvchi tomonidan tanlangan rangga bo'yalgan ellips chiziladi.

Vazifa raqami 7

Dan quyidagilarga imkon beradigan dastur yarating.

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

Vazifa raqami 8

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

PaintBox1 komponentini 4 ta teng qismga bo'ling, har bir qism ichida har xil geometrik shakl (ellips, olmos, uchburchak va to'rtburchak) chiziladi. Har bir shaklning rangi foydalanuvchi tomonidan ColorGrid-da tanlanadi.

Vazifa raqami 9

ListBox-dan geometrik nomni tanlang
shakllari (ellips, romb, to'rtburchak) va chizish
image komponentidagi tanlangan shakl. Manzil
image komponentidagi raqamlar (I chorak, II chorak,

III yoki IV chorak) va raqamning rangi tanlangan
radioGroup komponentlaridan.

Vazifa raqami 10

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

Yonning kattaligi matn bo'lishi mumkin emas, salbiy bo'lishi mumkin emas va shaklning kichik o'lchamidan oshmasligi kerak.

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

Vazifa raqami 11

Quyidagilarga imkon beradigan dastur yarating.

Radiogroup komponentasidan rasmning holatini tanlang

to'rtburchaklar uchburchakning Image komponentasida
shakliga qarab rangni to'ldirish yoki kontur rang
tasdiqlash tugmachalarini yoqing. Rangni tanlang
colorGrid komponentasi.

Vazifa raqami 12

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

Yonning kattaligi matn bo'lishi mumkin emas, salbiy bo'lishi mumkin emas va shaklning kichik o'lchamidan oshmasligi kerak.

PaintBox1 komponentini ikkita teng qismga ajrating, qismlardan birining ichida foydalanuvchi tomonidan Combobox-da tanlangan geometrik shakl (ellips, romb, uchburchak va to'rtburchak) chiziladi. ColorBox-da foydalanuvchi tomonidan tanlangan shaklning rangi.

Masalan, ariza rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: \u003d ColorBox1.Colors;

Vazifa raqami 13

Quyidagilarga imkon beradigan dastur yarating.

a) shaklning o'rtasiga kvadrat chizish (kvadrat tomonining o'lchamini foydalanuvchi kiritadi). Yonning kattaligi matn bo'lishi mumkin emas, salbiy bo'lishi mumkin emas va shaklning kichik o'lchamidan oshmasligi kerak.

b) katakchani belgilash tugmachalarining qo'shilishiga qarab kvadratni bitta yoki ikkita diagonali bilan ajratib oling va har bir hosil bo'lgan uchburchakni boshqa rangga bo'yaltiring. Rangni tanlash foydalanuvchi tomonidan amalga oshiriladi.

Vazifa raqami 14

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

Yonning kattaligi matn bo'lishi mumkin emas, salbiy bo'lishi mumkin emas va shaklning kichik o'lchamidan oshmasligi kerak.

PaintBox1 komponentasini 2 ta teng qismga bo'linib, bir qismining ichiga olmos chizib, ikkinchi qismining ichiga istalgan uchburchakni chizamiz. ColorBox-da foydalanuvchi tomonidan tanlangan shaklning rangi.

Masalan, ariza rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: \u003d ColorBox1.Colors;

Vazifa raqami 15

Quyidagilarga imkon beradigan dastur yarating.

a) Image komponentining o'lchamlarini gorizontal va vertikal ravishda bir xil va foydalanuvchi tomonidan klaviaturadan kiritilgan raqamga teng qilib belgilash;

(tomonning kattaligi matn bo'lishi mumkin emas, salbiy raqam bo'lmasligi va shaklning kichik o'lchamidan oshmasligi kerak)

b) Image komponentasini ikkita ko'k chiziq bilan teng ravishda to'rtta kvadratga bo'lish;

c) har bir olingan kvadrat ichida, unga yozilgan doira chizish (foydalanuvchi rang tanlash dialog oynasi orqali doiralarning rangini tanlashiga imkon bering).

Vazifa raqami 16

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

Yonning kattaligi matn bo'lishi mumkin emas, salbiy bo'lishi mumkin emas va shaklning kichik o'lchamidan oshmasligi kerak.

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

Masalan, ariza rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: \u003d ColorBox1.Colors;

Vazifa raqami 17

Shaklga ikkita Image komponentasi va to'rtta tugmani joylashtiring: Line Colour, Fill Color, Ok va Exit; va Edit komponentasi.

OK tugmachasini bosganingizda Image1da X tomoni bo'lgan kvadrat, har biri uzunligi X ga teng bo'lgan teng oyoqli to'rtburchaklar uchburchak, Image2 da chizilgan.

Uchburchakning tepasi Image2 ning kelib chiqishi bilan mos keladi. Kvadrat tepalaridan biri Image1 ning kelib chiqishiga to'g'ri keladi.

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

X - Random funktsiyasidan foydalanib tasodifiy tanlaydi va X qiymatining qiymati Edit komponentasida ko'rsatilishi kerak.

Vazifa raqami 18

Foydalanuvchiga PaintBox1 komponentasini (piksel bilan) o'lchamini ta'minlaydigan dastur yarating.

PaintBox1 komponentasini 4 ta teng qismga bo'ling, foydalanuvchi tanlagan qism ichida to'ldirilgan doirani qurish kerak, uning o'lchamini foydalanuvchi belgilaydi. Foydalanuvchi ColorBox-da to'ldirish rangini tanlaydi.

Masalan, ariza rangini quyidagicha o'zgartirishingiz mumkin:

form1.Color: \u003d ColorBox1.Colors;

Maqola sizga yoqdimi? Do'stlar bilan bo'lishish uchun: