СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Canvas парағында сурет салу. Қарындаш, қылқалам қасиеттері

Категория: Прочее

Нажмите, чтобы узнать подробности

Canvas парағында сурет салу. Қарындаш, қылқалам қасиеттері

Просмотр содержимого документа
«Canvas парағында сурет салу. Қарындаш, қылқалам қасиеттері»

Canvas парағында сурет салу

Қарындаш қасиеттері

TPen объектісі карындаш қасиеттері үшін жауап береді. Оның келесідей қасиеттері бар:

Handle – мұнда API функциялар үшін ғана арналған қарындаш сипаттамалары бар.

Mode – Көрсету режимі, түзудің қалай сызылатынын көрсетеді.

Style – қарындаш стилі. Келесідей стильдері бар:

􀂾 psSolid – тұтас сызық;

􀂾 psDash – үзік сызық;

􀂾 psDot – нүстелерден тұратын сызық;

􀂾 psDashDot – қысқа сызықтар мен нүктелердің кезектесуі;

􀂾 psDashDotDot - қысқа сызықтар мен екі нүктелердің кезектесуі;

􀂾 psClear – көрінбейтін сызық;

􀂾 psInsideFrame – форманың ішіндегі сызық. Тұтас сызыққа ұқсайды.

Width – қарындаш ені.

Тәжірибелік жұмыс

  1. Жаңа жоба құрып, оның OnPaint қасиетіне келесі кодты жазыңыз:

procedure TForm1.FormPaint(Sender: TObject);

begin

//Тұтас сызық сызамыз (psSolid)

Canvas.Pen.Style:=psSolid;

Canvas.MoveTo(10,20);

Canvas.LineTo(200,20);

// psDash сызығын саламыз

Canvas.Pen.Style:=psDash;

Canvas.MoveTo(10,40);

Canvas.LineTo(200,40);

// psDot сызығын саламыз

Canvas.Pen.Style:=psDot;

Canvas.MoveTo(10,60);

Canvas.LineTo(200,60);

// psDashDot сызығын саламыз

Canvas.Pen.Style:=psDashDot;

Canvas.MoveTo(10,80);

Canvas.LineTo(200,80);

// psDashDotDot сызығын саламыз

Canvas.Pen.Style:=psDashDotDot;

Canvas.MoveTo(10,100);

Canvas.LineTo(200,100);

// psClear сызығын саламыз

Canvas.Pen.Style:=psClear;

Canvas.MoveTo(10,120);

Canvas.LineTo(200,120);

// psInsideFrame сызығын саламыз

Canvas.Pen.Style:=psInsideFrame;

Canvas.MoveTo(10,140);

Canvas.LineTo(200,140);

end;

  1. Оның нәтижесін көреміз:

  1. Бұл мысалда алдымен, біз сызылатын сызықтың стилін таңдап алдық: Canvas.Pen.Style:=psSolid.

  2. Содан кейін қарындашты сызық басталатын нүктеге апарамыз: Canvas.MoveTo(Х, Y)

  3. Енді сызықты сызу үшін LineTo(X, Y) әдісін қолданамыз. Оның парамерлері ретінде оның соңғы координаттарын аламыз.

  4. Бірінші сызықты сызып болғаннан кейін, 20 пикселге төмен түсеміз де, екінші сызықты сызуды бастаймыз.

  5. Енді біздің бағдарламамызға қарындаштың түсін өзгерту мүмкіндігін қосамыз. Бұл үшін формаға «Түсті өзгерту» батырмасын және Dialogs қосымшасынан ColorDialog компонентін тастаңыз. ColorDialog компоненті түсті таңдаудың стандартты диалогын көрсету үшін арналған.

  6. Ол формада пиктограммасы бар квадтар түрінде көрінеді, ал жобаны жүктегенде көрінбейді.


  1. Батырманың OnClick оқиғасына келесі кодты жазамыз:

if ColorDialog1.Execute then

Canvas.Pen.Color:=ColorDialog1.Color;

FormPaint(nil);

  1. Бірінші жолда біз түсті таңдау терезесін кескіндейміз (ColorDialog1.Execute). Егер қолданушы түсті таңдаса, яғни «Отмена» батырмасына баспаса, онда терезе true мәнін қайтарады, сондықтан біз, терезені көрсету нәтижесі true-ге тең бе екенін тексереміз, солай болса, онда түсті өзгертеміз:

if ColorDialog1.Execute then

Холст түсін өзгертеміз.

  1. ColorDialog1 компонентінің таңдалған түстін нәтижесі Color қасиетіне жазылады. Осы біз қарындаш түсіне Canvas.Pen.Color меншіктейміз.

  2. Бұдан соң тек суретті қайта салу ғана қалды. Ол үшін форманың OnPaint оқиға өңдеушісін шақыру керек. Бізде өңдеуші FormPaint деп аталады, біз соны шақырдық.

  3. Бағдарламаны жүктеп, нәтижесін көруге болады.

  4. Енді түзу қалыңдығын өзгерту мүмкіндігін жасайық. Ол үшін Win32 қосымшасынан UpDown компонентін тастайық.

  5. Осы компоненттің OnClick оқиғасына келесі кодты жазамыз:

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

Canvas.Pen.Width:=UpDown1.Position;

Repaint;

end;

UpDown компоненті екі батырмадан тұрады – жоғарғысы ішкі санағышты арттырады, төменгісі азайтады. Санағыштың ағымдағы мәнін Position қасиетінен оқуға болады. Осы мәнді қарындаштың еніне меншіктейміз.

Бұдан соң Repaint әдісін шақырамыз. Бұл әдіс терезенің ішіндегіні қайта салу керек деген оқиғаны генерациялайды. Бұл дегеніміз, автоматты түрде OnPaint оқиғасы шақырылады.


Қылқалам қасиеттері

Кисть қасиеттері үшін Tcanvas объектісінің Brush қасиеті жауап береді. Ол да объектілік тип болып табылады, яғни өз қасиеттері мен әдістері бар.

TBrush объектісінің кисть параметрлеріне жауап беретін бірнеше қасиеттері бар:

Bitmap – бояу фоны ретінде қолданылатын сурет. Суреттің форматы 8х8 пиксель болуы тиіс.

Келесі кодты жазыңыз:

var

Bitmap: TBitmap;

begin

Bitmap := TBitmap.Create; //Сурет құрылады

try

Bitmap.LoadFromFile('MyBitmap.bmp'); //Сурет жүктеледі

Form1.Canvas.Brush.Bitmap := Bitmap; //Фон ретінде меншіктеледі

Form1.Canvas.Rectangle(0,0,100,100); // Квадрат салынады

finally

Form1.Canvas.Brush.Bitmap := nil; // Фон нөлденеді

Bitmap.Free; // Сурет жойылады.

end;

end;

Color – кистьтің түсі

Handle – кистьке сілтеме

Style – фон стилі. Мұнда келесідей мәндер болуы мүмкін: bsSolid, bsClear,

bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross.


Тәжірибелік жұмыс

  1. Жаңа жоба құрып, форманың OnPaint оқиғасына келесі кодты жазыңыз:

procedure TForm1.FormPaint(Sender: TObject);

begin

Canvas.Brush.Style:=bsSolid;

Canvas.Rectangle(10,10,50,50);

Canvas.Brush.Style:=bsBDiagonal;

Canvas.Rectangle(10,110,50,150);

Canvas.Brush.Style:=bsFDiagonal;

Canvas.Rectangle(10,160,50,200);

Canvas.Brush.Style:=bsCross;

Canvas.Rectangle(110,10,150,50);

Canvas.Brush.Style:=bsDiagCross;

Canvas.Rectangle(110,60,150,100);

Canvas.Brush.Style:=bsHorizontal;

Canvas.Rectangle(110,110,150,150);

Canvas.Brush.Style:=bsVertical;

Canvas.Rectangle(110,160,150,200);

Canvas.Brush.Style:=bsClear;

Canvas.Rectangle(10,60,50,100);

end;

мұнда Rectangle(x, y, r, b),

х – төртбұрыштың сол жағы;

y – төртбұрыштың жоғарңы жағы;

r – төртбұрыштың оң жағы;

b – төртбұрыштың төменгі жағы.

  1. Осылайша, біз әр түрлі стильдегі сегіз төртбұрышты салдық. Бірақ, бағдарламаны жүктеген кезде біз ешқандай айырмашылықты байқамаймыз, себебі, олардың фоны форманың фонымен бірдей болып тұр да, сондықтан көрінбейді.

  2. Айырмашылықты көру үшін кисть фонының түсін өзгерту керек. Формаға «Түсті өзгерту» деген батырма мен ColorDialog тастап, оған келесі кодты жазамыз:

if ColorDialog1.Execute then

Canvas.Brush.Color:=ColorDialog1.Color;

FormPaint(nil);

  1. Мұнда біз түсті өзгерту терезесін жүктейміз, және егер түс таңдалса, оны кистьтің түсіне меншіктейміз:

Canvas.Brush.Color:=ColorDialog1.Color