Графические возможности Delphi: Текст, линия, окружность

Вывод текста

 

Дня вывода текста на поверхность графического объекта используется метод TextOut. Инструкция вызова метода Textcmt в общем виде выглядит следующим образом:

 

Объект.Canvas.TextOut(x,у, Текст);

 

где:

  • объект — имя объекта, на поверхность которого выводится текст;
  • х, у — координаты точки графической поверхности, от которой выполняется вывод текста (рис. 10.3);
  • Текст — переменная или константа символьного типа, значение которой определяет выводимый методом текст.

Шрифт, который используется для вывода текста, определяется значением свойства Font соответствующего объекта Canvas. Свойство Font представляет собой объект типа TFont. В табл. 10.7 перечислены свойства объекта TFont, позволяющие задать характеристики шрифта, используемого методами Textout и TextRect для вывода текста.

Таблица 10.7. Свойства объекта TFont

Внимание! 

Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color нужно присвоить значение bsciear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст. 


 

Следующий фрагмент программы демонстрирует использование функции TextQut для вывода текста на поверхность формы:


 

 После вывода текста методом Textout указатель вывода (карандаш) перемещается в правый верхний угол области вывода текста.

Иногда требуется вывести какой-либо текст после сообщения, длина которого во время разработки программы неизвестна. Например, это может быть слово "руб." после значения числа, записанного прописью. В этом случае необходимо знать координаты правой границы уже выведенного текста. Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству EenPos. 

Следующий фрагмент программы демонстрирует возможность вывода строки текста при помощи двух инструкций Textout.



Линия 

Вычерчивание прямой линии осуществляет метод LineTo, инструкция вызова которого в общем виде выглядит следующим образом:

 

Компонент.Canvas.LineTo(x,у);

 

Метод LineTo вычерчивает прямую линию от текущей позиции карандаша в точку с координатами, указанными при вызове метода.

Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода MoveTo, указав в качестве параметров координаты нового положения карандаша.

 

Вид линии (цвет, толщина и стиль) определяется значениями свойств объекта Реп графической поверхности, на которой вычерчивается линия.

Довольно часто результаты расчетов удобно представить в виде графика. Для большей информативности и наглядности графики изображают на фоне координатных осей и оцифрованной сетки. В листинге 10.2 приведен текст программы, которая на поверхность формы выводит координатные оси и оцифрованную сетку (рис. 10.4).

Рис. 10.4, Форма приложения Координатная сетка 

Листинг 10.2. Оси координат и оцифрованная сетка


 

Особенность приведенной программы заключается в том, что она позволяет задавать шаг сетки и оцифровку. Кроме того, программа дает возможность оцифровывать не каждую линию сетки оси х, а через одну, две, три и т. д. Сделано это для того, чтобы предотвратить возможные наложения изображений чисел оцифровки друг на друга в случае, если эти числа состоят из нескольких цифр.

 

 Ломаная линия 

Метод Polyline вычерчивает ломаную линию. В качестве параметра метод получает массив типа Tpoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д. 

 

В качестве примера использования метода Polyline в листинге Ю.З приведена процедура, которая выводит график изменения некоторой величины. Предполагается, что исходные данные находятся в доступном процедуре Массиве Data (ТИП Integer).

Листинг 10.3. График функции (использование метода Polyline)

 

 

Метод Polyline можно использовать для вычерчивания замкнутых контуров.

 

Для этого надо, чтобы первый и последний элементы массива содержали координаты одной и той же точки. В качестве примера использования метода PoiyLine для вычерчивания замкнутого контура в листинге 10.4 приведена программа, которая на поверхности диалогового окна, в точке нажатия кнопки мыши, вычерчивает контур пятиконечной звезды (рис. 10.5). Цвет, которым вычерчивается звезда, зависит от того, какая из кнопок мыши была нажата. Процедура обработки нажатия кнопки мыши (событие MouseDown).

 

вызывает процедуру рисования звезды starLine и передает ей в качестве параметра координаты точки, в которой была нажата кнопка. Звезду вычерчивает процедура starLine, которая в качестве параметров получает координаты центра звезды и холст, на котором звезда должна быть выведена. Сначала вычисляются координаты концов и впадин звезды, которые записываются в массив р. Затем этот массив передается в качестве параметра методу Polyline. При вычислении координат лучей и впадин звезды используются функции sin и cos. Так как аргумент этих функций должен быть выражен в радианах, то значение угла в градусах домножается на величину pi/180, где pi — это стандартная именованная константа равная числу пи. 

 

Листинг 10,4. Вычерчивание замкнутого контура (звезды) в точке нажатия кнопки мыши


 

Рис. 10.5. Звезда

 

 

Примечание:

Обратите внимание, что размер массива р на единицу больше, чем количество концов и впадин звезды, и что значения первого и последнего элементов массива совпадают.

 

 

 

Окружность и Эллипс

 

Метод Ellipse вычерчивает эллипс или окружность, в зависимости от значений параметров. Инструкция вызова метода в общем виде выглядит следующим образом: 

 

Объект.Canvas.Ellipse(xl,yl, х22);

 

где 

  • объект — имя объекта (компонента), на поверхности которого выполняется вычерчивание;
  • x1, y1, х2, у2 — координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность (рис. 10.6).

Рис. 10.6. Значения параметров метода Ellipse определяют вид геометрической фигуры

                              
Цвет, толщина и стиль линии эллипса определяются значениями свойства реп, а цвет и стиль заливки области внутри эллипса — значениями свойства Brush поверхности (canvas), на которую выполняется вывод.
dle

Помоги проекту! Расскажи друзьям об этом сайте: