Об'єкт.Canvas.TextOut(x, у, Текст)
де:
- об'єкт — ім'я об'єкту, на поверхню якого виводиться текст;
- х, у — координати точки графічної поверхні, від якої виконується виведення тексту (мал. 3);
- Текст — змінна або константа символьного типа, значення якої визначає текст, що виводиться методом.
Рисунок 3 Координати області виведення тексту
Шрифт, який використовується для виведення тексту, визначається значенням властивості Font відповідного об'єкту canvas. Властивість Font є об'єктом типу TFont. У табл. 7 перераховані властивості об'єкту TFont, що дозволяють задати характеристики шрифту, використовуваного методами TextOut і TextRect для виведення тексту.
Властивості об'єкту TFont
Властивість
| Визначає
|
Name
| Використовуваний шрифт. Як значення слід використовувати назву шрифту, наприклад Arial
|
Size
| Розмір шрифту в пунктах (points). Пункт— це одиниця вимірювання розміру шрифту, використовувана в поліграфії. Один пункт рівний 1/72 дюйма
|
Style
| Стиль зображення символів. Можливо: нормальним, напівжирним, курсивним, підкресленим, перекресленим. Стиль задається за допомогою наступних констант: fsBold (напівжирний), fsltalic (курсив), f sUnderline (підкреслений), f sStrikeOut (перекреслений).
|
Style
| Властивість style є множиною, що дозволяє комбінувати необхідні стилі. Наприклад, інструкція програми, що встановлює стиль "напівжирний курсив", виглядає так:Объект. Canvas. Font: = [fsBold, fsItalic]
|
Color
| Колір символів. Як значення можна використовувати константу типу Tcolor
|
| | |
Методи
procedure Arc (XI, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer);
| Метод малює сегмент еліпса. Еліпс визначається прямокутник, що описує, (X1, Y1) -(X2, Y2); його розміри повинні лежати в діапазоні від 2 до 32767 точок. Початкова точка сегменту лежить на перетині еліпса і променя, проведеного з його центру через точку(X3.Y3). Кінцева точка сегменту лежить на перетині еліпса і променя, проведеного з його центру через точку(X4.Y4). Сегмент малюється проти годинникової стрілки.
|
procedure Chord(Xl, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer);
| Малює хорду і заливає частину еліпса, що відсікається нею. Еліпс, початкова і кінцева точки визначаються, як в методі Arc.
|
procedure EllipsefXl, Yl, Х2, Y2: Integer);
| Малює і зафарбовує еліпс, вписаний в прямокутник(X1.Y1), -(X2.Y2).
|
procedure LineTo(X, Y: Integer);
| Проводить лінію поточним пером з поточної точки в(X, Y).
|
procedure MoveTo(X, Y: Integer);
| Переміщає поточне положення пера(властивість PenPos) в точку(X, Y).
|
procedure FillRect(const Rect: TRect);
| Робить заливку прямокутника(поточною кистю).
|
procedure FrameRectfconst Rect: TRect);
| Робить контур прямокутника кольором поточної кисті(без заповнення).
|
procedure Pie (XI, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integers-
| Малює сектор еліпса, що описується прямокутником(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 Rectangle(XI, Yl, Х2, Y2: Integer);
| Малює прямокутник з верхнім лівим кутом в(XI, Y1) і нижнім правим в(X2.Y2).
|
procedure RoundRect (XI, Yl, Х2, Y2, ХЗ, Y3: Integer);
| Малює прямокутник із закругленими кутами. Координати вершин — ті ж, що і в методі Rectangle. Закруглення малюються як сегменти еліпса з розмірами осей по горизонталі і вертикалі ХЗ і Y3.
|
Більше методів джерело http://www.cyberguru.ru/delphi/delphi-components-part1-page26.html
Зразок 1 програми малювання сніговика (без мітли J)
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
canvas.Pen.Color:=claqua;
canvas.Brush.Color:=clAqua;
canvas.Ellipse(200,200,400,400);
canvas.Ellipse(250,100,350,200);
canvas.Ellipse(280,60,320,100);
canvas.Pen.Color:=clred;
canvas.Brush.Color:=clred;
canvas.Rectangle(280,30,320,60);
canvas.MoveTo(260,120);
canvas.LineTo(200,100);
canvas.MoveTo(340,120);
canvas.LineTo(400,100);
canvas.MoveTo(290,75);
canvas.LineTo(250,77);
canvas.LineTo(290,79);
canvas.LineTo(290,75);
canvas.FloodFill(285,77,clred,fsborder);
end;
end.