КАТЕГОРИИ: Архитектура-(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; Просмотров: 285; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |