- •Технология визуального программирования
- •1. Элементы программирования в Delphi
- •1.1. Основные понятия
- •1.2. Этапы создания приложения
- •2. Лабораторные работы
- •Label lbInput Введите число
- •Первая из них выводит окно с сообщением Msg и кнопку Ok. Вторая выводит в окне сообщение, изображение, определяемое константой
- •Соответствующее типу окна (предупреждение, ошибка, информация, подтверждение), и набор кнопок, определяемое множеством
- •Результат, возвращаемый функцией, следует проанализировать, например,
- •Лабораторная работа № 12. Создание графического редактора.
- •Приложение. Свойства и методы класса tCanvas
Приложение. Свойства и методы класса tCanvas
Cвойства TCanvas:
property Pen: TPen; Перо. Свойство задает различные атрибуты линий.
property Brush: TBrush; Кисть. Свойство задает цвет и шаблон заполнения.
property Font: TFont; Шрифт
property Pixels(X,Y: integer); Применяется для установки и чтения цвета точки с координатам X (слева направо начиная с нуля ) и Y (сверху вниз начиная с нуля). Координаты относятся к клиентской части компонента, имеющего Canvas.
Свойства пера:
property Color: TColor; Цвет линии.
property Width: integer; Толщина линии в пикселах
property Style: TPenStyle; TPenStyle=(psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame); Cтиль линии (пунктир, штрих-пунктир и т.п.).
property Mode: TPenMode; TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor); Режим рисования. Устанавливает способ взаимодействия цвета пера и цвета поверхности Canvas.
Свойства кисти:
property Color: TColor; Цвет закраски.
property Style: TBrushStyle; TBrushStyle ={ bsSolid, bsCross, bsClear, bsDiagCross, bsBDiagonal, bsHorizontal, bsFDiagonal, bsVertical}; Шаблон закраски.
property Bitmap: TBitmap; Произвольный шаблон закраски.
Cвойства шрифта:
property Name:TFontName; Содержит имя шрифта (например,Times New Roman).
property Style: TFontStyles; TFontStyles = set of TFontStyle; TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut); Содержит начертание шрифта (например, курсив).
property Color: TColor; Цвет шрифта.
property Pitch: TFontPitch; TFontPitch = (fpDefault, fpVariable, fpFixed); Устанавливает тип шрифта - моноширинный или пропорциональный.
property Size: integer; Размер шрифта в пунктах.
Методы TCanvas:
procedure Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4: integer); Рисует сегмент эллипса. Сегмент рисуется против часовой стрелки. Эллипс определяется описывающим прямоугольником (X1,Y1) - (X2,Y2). Начальная и конечные точки сегмента лежат на пересечении эллипса и лучей, проведенных из его центра через точки (X3,Y3) и (X4,Y4), соответственно.
procedure Chord (X1, Y1, X2, Y2, X3, Y3, X4, Y4: integer); Рисует хорду и заливает отсекаемую ею часть эллипса. Эллипс и координаты хорды определяются, как в методе Arc.
procedure Ellipse (X1, Y1, X2, Y2: integer); Рисует и закрашивает текущей кистью эллипс, вписанный в прямоугольник (X1,Y1) - (X2,Y2).
procedure LineTo (X, Y: Integer); Проводит линию текущим пером из текущей точки в точку (X,Y).
procedure MoveTo (X, Y: Integer); Перемещает текущее положение пера в точку (X,Y).
procedure CopyRect (const Rect: TRect; Canvas: TCanvas; const Source: TRect); Производит копирование прямоугольника Source из канвы Canvas в прямоугольник Dest в текущую канву.
procedure Draw (X, Y: Integer; Graphic: TGraphic); Вызывает метод рисования объекта Graphic в области с верхним углом (X,Y).
procedure StretchDraw (const Rect: TRect; Graphic: TGraphic); Вызывает метод рисования объекта Graphic в прямоугольнике Rect. Если размеры их не совпадают Graphic масштабируется.
procedure DrawFocusRect (const Rect: TRect); Рисует прямоугольную рамку из точек. Повторное рисование приводит изображение к первоначальному виду.
procedure FillRect (const Rect: Trect); Производит закраску прямоугольника текущей кистью.
procedure FloodFill (X,Y: integer; Color: TColor; FillStyle: TFillStyle); TFillStyle =(fsSurface, fsBorder); Производит заливку области текущей кистью. Процесс начинается с точки (X,Y). Если режим FillStyle равен FsSurface, то он продолжается до тех пор, пока есть соседние точки с цветом Color. В режиме fsBorder закрашивание, наоборот,прекращается при выходе на границу с цветом Color.
procedure FrameRect (const Rect: TRect); Производит «оконтуривание» цветом текущей кисти.
procedure Pie (X1, Y1, X2, Y2, X3, Y3, X4, Y4: integer); Рисует сектор эллипса, определяемого описывающим прямоугольником (X1,Y1) - (X2,Y2). Стороны сектора лежат на лучах, проведенных из его центра через точки (X3,Y3) и (X4,Y4).
procedure Polygon (const Points: array of TPoint); Строит многоугольник по координатам Points. Внутренняя область закрашивается.
procedure Polyline (const Points: array of TPoint); Строит ломаную линию по координатам Points.
procedure PolyBezier (const Points: array of TPoint); Строит кривую Безье (кубический сплайн) по координатам Points.
procedure PolyBezierTo (const Points: array of TPoint); Строит кривую Безье (кубический сплайн) по координатам Points. Текущая точка используется в качестве первой.
procedure Rectangle (X1, Y1, X2, Y2: integer); Рисует прямоугольник с верхним левым углом (X1,Y1) и нижним правым в (X2,Y2).
procedure Refresh; Приводит Canvas к заданному по умолчанию состоянию.
procedure RoundRect (X1, Y1, X2, Y2, X3, Y3: integer); Рисует прямоугольник с закругленными углами. Закругления рисуются как сегменты эллипса с размерами осей по горизонтали и вертикали X3 и Y3.
procedure TextHeight (const Text: string): integer; Возвращает высоту строки в пикселах (точках).
procedure TextOut (x,y: integer; const Text: string); Выводит строку в позицию (x,y).
procedure TextWidth (const Text: string): integer; Возвращает ширину строки в пикселах.
property PenPos: TPoint; Содержит текущую позицию пера.
Выше были использованы типы:
type
TPoint = record {Координаты точки}
X: Longint;
Y: Longint;
end;
TRect=record {Координаты прямоугольника}
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;