Лабораторная работа №3 (10 баллов). Шрифты и графика

У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты - TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Canvas обладает также рядом графических методов : Draw, TextOut, Arc, Rectangle и др. Рассмотрим подробнее свойства и методы объекта Canvas.

Использование перьев

С помощью перьев на канве рисуются линии.. Доступ к пкрьям осуществляется через свойство Canvas.Pen Для изменения способа рисования линий следует модифицировать свойства объекта пера: Color, Width, Style, и Mode.

Свойство Color определяет цвет пера. В Delphi предусмотрены предопределенные цветовые константы, например, clRed, clYellow соответствуют красному и желтому цветам. Кроме того, определены константы для представления системных цветов экранных элементов системы Win32. Например, константы clActiveCaption и clHighliteText соответствуют цветам активных заголовков и выделенного текста в данной системе Win32. Приведенная ниже строка назначает перу канвы синий цвет.

Canvas.Pen.Color := clBlue;

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

Стиль Что рисуется
psClear Невидимая линия
psDash Линия, состоящая из штрихов
psDashDot Линия, состоящая из чередующихся штрихов и точек
psDashDotDot Линия, состоящая из сочетания штрих-точка-точка
psDot Линия, состоящая из точек
psInsideFrame Линия внутри рамки замкнутой формы, определяющей ограничивающий прямоугольник
psSolid Сплошная линия

Следующая строка демонстрирует, как изменить стиль рисования пером:

Canvas.Pen.Stylel := psDashDot;

Свойство Pen.Width позволяет указать ширину линии в пикселях, проводимую пером при рисовании. При установке большего значения перо рисует более толстую линию.

На заметку Стиль штриховых линий применяется для перьев шириной, равной 1 пикселю. При установке ширины, равной 2, перо будет рисовать сплошную линию. Такое поведение унаследовано от 16-разрядного GDI, действия которого система Win32 эмулирует в целях совместимости.

Использование кисти

Если перо (объект TPen) позволяет рисовать на канве линии, то с помощью кисти (объекта TBrush) выполняется закрашивание областей и фигур, нарисованных на этой канве. При этом могут использоваться различные цвета, стили и узоры.

Объект TBrush обладает тремя важными свойствами Color, Style и BitMap, которые определяют, как кисть будет закрашивать поверхность канвы. Свойство Color определяет цвет кисти, Style — узор фона кисти, а BitMap задает растр, который можно использовать для создания пользовательских орнаментов, служащих фоном кисти.

Свойство Style кисти может принимать одно из восьми допустимых значений: bsSolid, bsClear, bsHorizontal, bsVertical, bcFDiagonal, bsBDiagonal, bsCross и bsDiagCross. По умолчанию цвет кисти устанавливается равным константе clWhite, стиль — константе bsSolid, а растр не задается. В вашей власти изменять стандартные цвет и стиль работы кисти при выполнении закрашивания областей различными узорами.

Использование шрифтов

С помощью свойства Canvas.Font можно выводить на канву текст, используя любой из доступных в интерфейсе Win32 шрифтов. При этом существует возможность изменять внешний вид помещаемого на канву текста путем модификации такого свойства шрифта, как Color, Name, Size, Height или Style.

Свойству Font.Color можно присвоить любой определенный в Delphi цвет. Например, с помощью следующей строки можно получить шрифт красного цвета:

Canvas.Font.Color := clRed;

Свойство Name предназначено для указания имени шрифта Windows. Так, используя следующую строку, в качестве шрифта канвы можно установить любой требуемый шрифт:

Canvas.Font.Name := ‘Times New Roman’;

Свойство Canvas.Font.Size задает размер шрифта в пунктах.

Свойство Canvas.Font.Stile представляет собой множество, которое может состоять из одного или произвольной комбинации стилей, приведенных в таблице.

Значение Стиль
fsBold Полужирный
fsItalic Курсив
fsUnderline Подчеркивание
fsStrikeOut Перечеркнутый текст

Для объединения двух стилей используйте следующий синтаксис:

Canvas.Font.Style := [fsBold, fsItalic];

Для выбора определенного шрифта и присвоения его свойству Tmemo.Font можно использовать объект TfontDialog:

If FontDialog1.Execute then

Memo1.Font.Assign(FontDialog1.Font);

Тот же результат будет достигнут, если присвоить шрифт, выбранный с помощью объекта TfontDialog, свойству объекта Canvas, отвечающему за шрифт:

Canvas.Font.Assign(FontDialog1.Font);

Кроме того, шрифту объекта Canvas можно присвоить отдельные атрибуты, принадлежащие шрифту, выбранному с помощью объекта TfontDialog:

Canvas.Font.Name := Font.Dialog1.Font.Name;

Canvas.Font.Size := Font.Dialog1.Font.Size;

Задание 1. Редактор надписей

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

Задание 2. Грифики функций

Программа выводит по выбору пользователя график одной из трех функций: прямая, парабола или синусоида. В диалоговом окне задаются параметры графика (коэффициенты a,b для прямой и a,b,c для параболы или синусоиды, расположение графика, масштаб и т.д.).

Задание 3

Написать проект, в котором был бы реализован интерфейс для любого из численных методов. В проекте обязательно использовать графику.

Наши рекомендации