Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi, Pascal.docx
Скачиваний:
8
Добавлен:
26.04.2019
Размер:
566.19 Кб
Скачать

23. Как выводить графики в Delphi, используя компоненту tImage. Опишите по­следовательность действий по настройке tImage и фрагмент программы вы­вода закрашенного квадрата внутри круга.

В стандартную библиотеку визуальных компонент Delphi входит несколько объектов, с помощью которых можно придать своей программе совершенно оригинальный вид. Это - TImage, TShape, TBevel.

Компонент TImage(отображение картинок)- служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки (расширение *.bmp), пиктограммы (*.ico) или метафайла (*.mtf). Любой из этих типов изображений содержится в центральном свойстве компонента -Picture.

Свойства TImage:

*AutoSize, разрешает (true) запрещает(false) изменять размеры компонента так, чтобы в него полностью загрузилось изображение; *Canvas, Свойство типа canvas предназначенное для форми­рования изображения внутри компоненты на стадии выполнения программы;

*Center, определяет положение картинки в поле компонента по горизонтали, если ширина картинки меньше ши­рины поля компонента. Если значение true, изобра­жение выравнивается по центру компоненты, иначе -помещается в левый верхний угол компоненты;*Picture, свойство определяет изображение, которое будет отображаться в компоненте. Указать путь к файлу с изображением можно, нажав на кнопку …; *Stretch, разрешает (true) запрещает(false) изменять размеры изображения так, чтобы оно целиком заполнило об­ласть компонента; *Proportional, Признак автоматического масштабирования картинки без искажения. Чтобы масштабирование было вы­полнено, значение свойства AitoSize должно быть в значении false.

Нарисованную в Image1 картинку можно перенести в отчет, используя процедуру ClipBoard.Assign(Image1.Picture) (модуль Clipbrd). Для рисования используют класс TСanvas, который является свойством многих компонентов, и представляет собой прямоугольный холст в виде матрицы из пикселей и набор инструментов для рисования на нем. Каждый пиксель имеет координату (x, y), где x – порядковый номер пикселя, начиная от левой границы холста, а y – порядковый номер пикселя, начиная от верхней границы холста. Левый верхний угол холста имеет координату (0, 0), а нижний правый (Image1.Width-1, Image1.Height-1).

Основные свойства класса TCanvas:

*Property Pen : TPen; – карандаш. В свою очередь, имеет свойства Color - цвет , Width - толщина и Style – стиль ( psSolid – сплошной, psDash – штриховой, psDot – пунктирный, psClear – отсутствие линии и др.); *Property Brush : TBrush; – кистью. Это свойство определяет фон заполнения замкнутых фигур. В свою очередь, имеет свойства Color - цвет и Style – стиль ( bsSolid – сплошной, bsCross – сетка, bsClear – отсутствие фона и др.); *Property Font : TFont; – шрифт. В свою очередь, имеет свойства Color - цвет, Size - размер и Style – стиль ( fsBold – жирный, fsitalic – курсив и др.).

Некоторые методы класса TCanvas

Pгосеdure Еlliрsе(Х1, Y1, Х2, Y2: Integer) – рисует эллипс в охватывающем прямоугольнике (X1, Y1), (Х2, Y2) и заполняет внутреннее пространство эллипса текущей кистью.

Pгосedure Rectangle (X1, У1, Х2, У2: Integer) – рисует и заполняет прямоугольник (X1, У1), (Х2, У2). Для вычерчивания без заполнения используется FrameRect или РоlуLine.

Pгосedure LineТо (X, У: Integer) – рисует линию от текущего положения пера до точки (X. У).

Procedure МоvеТо(Х, У: Integer) – перемещает карандаш в точку (X, У) без вычерчивания линий.

Pгосedure Роlуgоn (Роints: аrrау оf ТРоint) – рисует многоугольник по точкам, заданным в массиве Роints. Например: Canvas.Polygon([Point(x1, y1), Point(x2, y2), Point(x3, y3]); Конечная точка соединяется с начальной и многоугольник заполняется кистью. Для вычерчивания без заполнения используется метод Роlуline.

Procedure ТехtОut (Х, У: Integer; const Техt: String) – выводит текстовую строку Техt так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (X, У).

Пример программы вывода эллипса красного цвета

Begin

With PaintBox1.Canvas do

Begin

Brush.Color:=clRed;

Ellipse(0,0,Width,height);

Font.Size:=Height div 5;

Font.Color:= clWhite;

X:=(Width-TextWidth('Delphi')) div 2;

Y:=(Height-TextHeight('D')) div 2;

TextOut(x,y, 'Delphi');

End;