Path1.Data.AddEllipse (R); //Добавление очередного объекта
Аналогично, TPie может быть использован для кругового графика (заполненная цветом – как сектор).
Для надписей также есть своя фигура TText.
К сожалению Path: TPath графика конфликтует с Path: TPath пути для файлов! Поэтому одновременно рисовать и сохранять данные не получится; придется использовать рисование: Path: TPathData.
11.3. Компоненты типа Image и Paint
Для собственно рисования имеются компоненты PaintBox и Image (обычно для иллюстраций) из группы Shapes, имеющие свойства для рисования: Bitmap, Canvas, Begin Scene и End Scene (внутри которых происходит подготовка к рисованию), для загрузки рисунков – загрузка из файла и из потока: LoadFromFile (директория, имя файлы,) LoadFromStreem (…); сохранить и распечатать рисунок:
Chart1.SaveToBitmapFile('c:\Папка\btmp.jpg’);
ShellExecute (0, ’print’, 'c:\Папка\btmp.jpg’, nil, nil, 0);
В свойстве WrapMode: Stretch: отображать целиком с искажениями по размеру компонента; Center: отображается только центральная часть иллюстрации; Fit: масштабирование без искажений; Original: отображается левая верхняя граница в пределах компонента; Tile: если размер картинки меньше, то выводятся «плитки» картинки.
Вывод подготовленных ранее рисунков осуществляется с помщью PaintBox1.PaintTo () с указанием Canvas и области выведения: константы Rect; PaintBox1.Canvas. DrawBitmap () с указанием Bitmap и областей Rect начального и конечного переноса.
Методы рисования позволяют нарисовать элементарные фигуры например, PaintBox1.Canvas.FillRect () – закрашенный прямоугольник с закругленными краями, и др. Доступ к Image, являющимся объектом TCanvas, осуществляется через свойство Bitmap.
В общем виде вывод рисунка проводится как:
Объект.Canvas. Метод (параметры): PaintBox1.Canvas.FillRect ().
Свойство Canvas имеет возможности нарисовать различные фигуры (draw) – линию, прямоугольник, эллипс, и закрасить их (Fill). Цвет можно определить через TAlphaColor. Blue (и др. цвета выводимые подсказкой). Толщину и вид линии определяют свойтва Stroke, Thickness и StokeDash, а стиль закраски – FillKind.
Важно: для вывода рисунка его надо оформить внутри BeginScene и EndScene. Координаты задаются для линии точками X и Y начала и конца линии, объекта TPoint; для других фигур – объектом TRect, описывающий область. Код для рисования линии на компоненте Image1 при открытии приложения:
procedure TForm1.FormPaint (Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
var
p1,p2:TPointF;
begin
p1.X:=Image1.Position. X;
p1.Y:=Image1.Position. Y;
p2.X:=Image1.Position. X+100;
p2.Y:=Image1.Position. Y+150;
if Canvas.BeginScene =true then
try
Canvas.Stroke.Kind:=TBrushKind.Solid;
Canvas. DrawLine (p1,p2,10);
finally
Canvas. EndScene;
end; end;
var
p1,p2:TPoint;
begin // Рисует линию
p1.X:= 40;
p1.Y:= 40;
p2.X:= 100;
p2.Y:= 100;
Image1.Canvas.BeginScene;
Image1.Canvas. DrawLine (p1,p2,1.0);
Image1.Canvas. EndScene;
end;
//Рисует квадрат
Var
R: Trect;
begin
R. Left:= 30;
R.Top:= 30;
R. Right:= 100;
R.Bottom:= 100; // Y1
Image1.Canvas.BeginScene; //создание графической сцены
Canvas.Fill.Kind:= TBrushKind. bkSolid; // Тип линии
Canvas.Fill.Color:= TAlphaColors. Blue; // Цвет закраски области
Image1.Canvas.DrawRect(r,5,5,[TCorner.TopLeft,
TCorner.BottomLeft],0.8);
Image1.Canvas. EndScene; //завершение сцены и вывод изображения на экран
end;
DrawRect(r,5,5,[TCorner.TopLeft, TCorner.BottomLeft],0.8) – включает указания на область вывода прямоугольника (r), радиусы закругления углов (5,5) с указанием какие именно углы следует закруглить [TCorner.TopLeft