Дадатак да главы 4
Сайт: | Профильное обучение |
Курс: | Інфарматыка. 11 клас (Павышаны ўзровень) |
Книга: | Дадатак да главы 4 |
Напечатано:: | Гость |
Дата: | Суббота, 19 Апрель 2025, 12:39 |
Работа з графікай на канве
Уласцівасць Pen (аловак) дазваляе вызначаць колер, таўшчыню і стыль ліній.
Асноўныя ўласцівасці класа TРеn |
|
Свойство |
Прызначэнне |
Color |
Колер алоўка |
Style |
Стыль лініі вызначае, ці будзе яна суцэльнай або пункцірнай |
Width |
Таўшчыня лініі ў пікселях |
Уласцівасць Style можа прымаць значэнні, названыя ў табліцы.
Уласцівасць Brush (пэндзаль) прызначана для запаўнення абласцей зададзеным шаблонам. Пэндзаль валодае ўласцівасцямі Color, Style.
Некаторыя ўласцівасці класа 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 — ячэйкі будуць перамяшчацца толькі пры адпушчэнні скрола |