Печатать книгуПечатать книгу

Дадатак да главы 4

Сайт: Профильное обучение
Курс: Інфарматыка. 11 клас (Павышаны ўзровень)
Книга: Дадатак да главы 4
Напечатано:: Гость
Дата: Пятница, 3 Май 2024, 14:03

Работа з графікай на канве

Уласцівасць Pen (аловак) дазваляе вызначаць колер, таўшчыню і стыль ліній.

Асноўныя ўласцівасці класа TРеn

Свойство

Прызначэнне

Color

Колер алоўка

Style 

Стыль лініі вызначае, ці будзе яна суцэльнай або пункцірнай

Width

Таўшчыня лініі ў пікселях

Уласцівасць Style можа прымаць значэнні, названыя ў табліцы.


Уласцівасць 
Brush (пэндзаль) прызначана для запаўнення абласцей зададзеным шаблонам. Пэндзаль валодае ўласцівасцямі Color, Style.

Уласцівасць Font (шрыфт) дазваляе вызначаць уласцівасці бягучага шрыфта.

Некаторыя ўласцівасці класа TFont

Name

Назва шрыфту, пад якім ён зарэгістраваны ў Windows, напрыклад Times New Roman, Courier і іншыя

Size

Вышыня шрыфту ў пікселях

Style

Стыль шрыфту. Магчымыя значэнні: fsBold (паўтлусты); fsltalic (курсіў); fsUnderline (падкрэслены); fsStrikeOut (закрэслены)

Color

Колер

Метады канвы дазваляюць будаваць графічныя малюнкі на канве. Шмат у чым метады канвы супадаюць з аналагічнымі камандамі пабудовы графічных малюнкаў у асяроддзі PascalABC.

Кароткае апісанне метадаў класа TCanvas

Arc(x1,y1,х2,y2,х3,y3,х4,y4);

Маляванне часткі эліпса

Chord(x1,y1,x2,y2,x3,y3,x4,y4);

Малюецца замкнёная фігура (сегмент), створаная перасячэннем эліпса і адрэзка прамой лініі (хорды)

Ellipse(x1, y1, х2, y2);

Малюецца эліпс

FloodFill(x,y,Color,FillStyle);

Запаўненне зададзеным колерам вобласці палатна, прылеглага да пункта, зададзенага ў якасці параметра

LineTo(x, y);

Малюе лінію ад пункта, вызначанага ўласцівасцю PenPos да пункта, паказанага ў якасці параметра

MoveTo(x, y);

Устанаўлівае бягучую пазіцыю графічнага курсора ў пункт, які зададзены ў параметрах метаду

Pie(x1,y2,x2,y2,x3,y3,x4,y4);

Малюецца сектар эліпса, размешчаны ўнутры зададзенага прамавугольніка

Polygon(Points: array of TPoint);

Малюецца складаная фігура, якая складаецца з адрэзкаў, якія паслядоўна злучаюць пункты, прадстаўленыя ў выглядзе масіва элементаў TPoint. Апошні пункт злучаецца з першым. Унутраная частка фігуры запаўняецца ў адпаведнасці са значэннем уласцівасці Brush

Polyline(Points: array of TPoint)

Метад аналагічны папярэдняму, але запаўнення ўнутранай часткі фігуры не адбываецца

Rectangle (x1, y1,x2,y2);

Малюецца прамавугольнік, унутраная вобласць якога запаўняецца ў адпаведнасці са значэннем уласцівасці Brush

RoundRect( x1, y1,x2,y2,x3,y3);

Малюецца прамавугольнік са скругленымі вугламі. Параметры x3, y3 вызначаюць шырыню і вышыню эліпса для скруглення вуглоў

TextOut(x,y,Text);

Вывад радка ў канкрэтную пазіцыю палатна

Разгледзім падрабязней метады, адрозныя ад аналагічных працэдур у PascalABC.

Метад Ellipse малюе эліпс, у якім пункты (x1, y1) і (x2, y2) вызначаюць прамавугольнік, які апісвае эліпс.

Метады Arc, Chord и Pie маюць аднолькавыя параметры. Пункты (x1, y1) і (x2, y2) вызначаюць прамавугольнік, які апісвае эліпс, у якім будуецца дуга, сегмент або сектар. Пачатковы пункт дугі, сегмента або сектара вызначаецца перасячэннем эліпса з прамой, якая праходзіць праз яго цэнтр і пункт (x3, y3). Канчатковы пункт дугі, сегмента або сектара вызначаецца перасячэннем эліпса з прамой, якая праходзіць праз яго цэнтр і пункт (x4, y4). Маляванне адбываецца ад пачатковага пункта да канчатковага супраць гадзіннай стрэлкі. Прыклады пабудовы дугі, сегмента, сектара і параметры адпаведных метадаў.

Метад FloodFill запаўняе замкнёную вобласць на канве, якая змяшчае ўнутры сябе пункт з каардынатамі x, y. Мяжа вобласці залівання вызначаецца спалучэннем параметраў Color і FillStyle. Калі для параметра Fillstyle вызначыць значэнне fsBorder, то каманда будзе працаваць гэтак жа, як і аналагічная каманда ў асяроддзі BP. Будзе зафарбаваная вобласць, абмежаваная колерам Color. Калі для параметра Fillstyle вызначыць значэнне fsSurface, то колер Color заменіцца, а іншыя колеры ўнутры вобласці застануцца нязменнымі. Колер і стыль, якім будзе вырабляцца заліванне, вызначаюцца ўласцівасцямі Brush.

Параметры функцыі FormatDateTime

Функцыя FormatDateTime дазваляе здзяйсняць рознае фармаціраванне пры вывадзе даты і часу. Дата і час пераўтворацца ў радок. Фармаціраванне радка вызначаецца першым параметрам функцыі, які задае фармат (Formatting). Радок, якія фармаціруецца, можа ўключаць у сябе як звычайныя сімвалы (якія перадаюцца нязменнымі ў радку выніку) і сімвалы фармаціравання даных. Другім параметрам можа быць: Data(), Time(), Now().

Сімвалы фармаціравання даты

Дзеянне

y

Год з 2 апошніх лічбаў

yy

Год з 2 апошніх лічбаў

yyyy

Год з 4 лічбаў

m

Нумар месяца без 0

mm

Нумар месяца як 2 лічбы

mmm

Месяц, выкарыстоўваючы ShortDayNames (Студз)

mmmm

Месяц, выкарыстоўваючы LongDayNames (Студзень)

d

Лік без 0

dd

Лік як 2 лічбы

ddd

Лік, выкарыстоўваючы ShortDayNames (Нядз)

dddd

Лік, выкарыстоўваючы LongDayNames (Нядзеля)

ddddd

Лік у ShortDateFormat

dddddd

Лік у LongDateFormat

Пример: вызов функции FormatDateTime("ddd, ddddd", Date()) выведет дату в таком виде: «Пн, 19.04.2021».

Сімвалы фармаціравання часу

Дзеянне

h

Гадзіна без 0

hh

Гадзіна як 2 лічбы

n

Хвіліны без 0

nn

Хвіліны як 2 лічбы

s

Секунды без 0

ss

Секунды як 2 лічбы

z

Мілісекунды без 0

zzz

Мілісекунды як 2 лічбы

t

Выкарыстоўваючы ShortTimeFormat

tt

Выкарыстоўваючы LongTimeFormat

Прыклад: выклік функцыі FormatDateTime ("hh:nn:ss", Time()) выведзе час у такім выглядзе: «21:47: 03». Гэты выклік эквівалентны выкліку FormatDateTime("tt", Time()).

Сімвалы фармаціравання даты і часу

Дзеянне

c

Выкарыстоўваючы ShortDateFormat + LongTimeFormat

am/pm

Выкарыстоўваецца пасля h: выдае 12 гадзін + am/pm

a/p

Выкарыстоўваецца пасля h: выдае 12 гадзін + a/p

ampm

Як a/p, але выводзяцца толькі лікавыя значэнні (літары a/p не дапісваюцца)

Прыклад: выклік функцыі FormatDateTime("с", Now()) выведзе дату і час у такім выглядзе: «19.04.2021 21:56:33», выклік функцыі FormatDateTime ("dddd, hh:mm am/pm", Now ()) выведзе дату і час у такім выглядзе: «панядзелак, 10:08 pm».

Параметры ўласцівасці Options кампанента StringGrid

Усе ніжэй прадстаўленыя ўласцівасці маюць лагічны тып і прымаюць значэнні true або false.

Уласцівасць

Апісанне

goFixedVertLine

Вертыкальныя раздзяляльныя лініі паміж «фіксаванымі» ячэйкамі

goFixedHorzLine

Гарызантальныя раздзяляльныя лініі паміж «фіксаванымі» ячэйкамі

goVertLine

Вертыкальныя раздзяляльныя лініі паміж усімі ячэйкамі

goHorzLine

Гарызантальныя раздзяляльныя лініі паміж усімі ячэйкамі

goRangeSelect

Уключэнне рэжыму вылучэння дыяпазону ячэек табліцы

goDrawFocusSelected

Дае магчымасць зафарбоўвання ячэйкі з фокусам

goRowSizing

Дае магчымасць змяняць вышыню радкоў з дапамогай мышы

goColSizing

Дае магчымасць змяняць шырыню слупкоў з дапамогай мышы

goRowMoving

Дае магчымасць перамяшчаць радок з дапамогай мышы

goColMoving

Дазваляе перамяшчаць слупок з дапамогай мышы

goEditing

Кіруе рэжымам рэдагавання змесціва ячэйкі

goTabs

Кіруе рэжымам пераходу табуляцыяй: пры true фокус будзе перамяшчацца на наступную ячэйку, пры false — на наступны кампанент

goRowSelect

Дае магчымасць вылучаць увесь радок з «факусаванай» ячэйкай

goAlwaysShowEditor

Калі true змесціва ячэйкі пры фокусе адразу будзе даступна рэдагаванню, а пры false — спачатку трэба пстрыкнуць па ячэйцы мышкай

goThumbTracking

Мышкай будзе выклікацца неадкладнае перамяшчэнне ячэек, а пры false — ячэйкі будуць перамяшчацца толькі пры адпушчэнні скрола