Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

VII.Клас TCanvas




Цей клас створює «канву», на якій можна малювати креслярськими інструментами - ручкою, пензлем і шрифтом. Об'єкти класу TCаnvas автоматично створюються для усіх видимих компонентів, що повинні вміти намалювати себе. Вони інкапсулюють об'єкти Font, Pen, Brush, а також численні методи, що використовують ці об'єкти.

Розглянемо декілька методів даного класу.

 

Procedure Ellipse(X1,Y1,Х2,Y2:Integer); Креслить еліпс у прямокутнику, що охоплює, (X1,Y1)-(X2,Y2). Заповнює внутрішній простір еліпса поточним пензлем.

Procedure FloodFill(X,Y:Integer; Color:TColor; FillStyle:TFillStyle); Робить заливку канви поточним пензлем. Заливка починається з точки (X,Y) і поширюється в - усі сторони від її. Якщо FillStyle=fsSurfасе, заливка поширюється на всі сусідні точки з кольором Color. Якщо FillStyle=fsBorder, навпаки, заливка припиняється на точках із цим кольором.

Procedure LineTo(X,Y:Integer); Креслить лінію від поточного положення пензля до точки (X,Y).

Procedure MoveTo (X,Y: Integer); Переміщає пензель в положення (X,Y) без креслення ліній.

Procedure Rectangle(X1,Y1,X2,Y2:Integer); Вичерчує і заповнює прямокутник (X1,Y1)- (X2,Y2). Для креслення без заповнення використовуйте FrameRect або Polyline.

 

VIII.Області.

На жаль, у клас TCanvas не включена ще одна образотворча можливість Windows - області (Regions). Області - такі ж графічні об'єкти, як ручку, пензель, шрифт. Вони утворяться за допомогою комбінації найпростіших геометричних фігур - прямокутників, багатокутників, еліпсів. Чудовою особливістю областей є можливість створення з їхньою поміччю не прямокутних кнопок, колірних областей, вікон.

Основні функції для роботи з областями.

Function CombineRgn(DestRgn, Rgn1, Rgn2: Cardinal; CombineMode: Ineger): Integer; Об'єднує дві області в одну: DestRgn - дескриптор результуючої області; Rgn1, Rgn2 - дескриптори що об'єднуються областей; CombineMode - параметр, що вказує засіб об'єднання.

Function CreateEllipticRgn(x1, y1, x2, y2: Integer): Cardinal; Створює еліптичну область.

Function CreatePolygonRgn(var Points; Count, PolyFillMode: Integer): Cardinal; Створює область у виді багатокутника: Points - масив координат усіх вершин багатокутника; Count - кількість вершин; PolyFillMode - режим заповнення багатокутника.

Function CreateRectRgn(x1,y1,x2,y2:Integer):Cardinal; Створює прямокутну область.

Function CreateRoundRectRgn (x1,y1,x2,y2,x3,y3:integer):Cardinal; Створює область з округленими кутами.

Function EqualRgn(Rgn1, Rgn2: Cardinal): Bool; Перевіряє еквівалентність двох областей.

Function FillRgn(DC, Rgn, Brush: Cardinal): Bool; Зафарбовує область пензлем: DC-дескриптор канви вікна; Rgn-дескриптор області; Brush-дескриптор пензля.

Function FrameRgn(DC, Rgn, Brush: Cardinal; Width, Height: integer):Bool; Обводить (але не заповнює) область пензлем висотою Height і шириною Width пікселів.

Function InvertRgn (DC, Rgn: Cardinal):Bool; Інвертує всі пікселі усередині області.

Function OffsetRgn(DC, Rgn: Cardinal; dx, dy: Integer): Integer; Зміщає область dx по горизонталі і на dy по вертикалі.

Function PaintRgn(DC, Rgn: Cardinal): Bool; Зафарбовує область поточним пензлем.

Function PtInRegion (Rgn: Cardinal; x, y: Integer): Bool; Перевіряє приналежність точки (X,Y) області Rgn.

Function RectInRRegion(Rgn: Cardinal; Rect: Trect): Bool; Перевіряє приналежність прямокутника Rect області Rgn.

Function SetWindowRgn (DC, Rgn: Carrdinal; Redraw: Bool):Integer; Показує приналежному вікну з канвою DC область Rgn замість вікна; Redraw - дозволяє/забороняє перемалювання області. Усі частини вікна, що не ввійшли в область, не показуються.

Приклад нестандартного вікна.

 

Var

Rgn:Cardinal;

Begin

Rgn:=Form1. Canvas. CreateEllipticRgn(0,0,50,50);

Form1. Canvas. SetWindowRgn(Handle, Rgn, True);

End;

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 270; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.