Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Введение в среду визуального программирования Delphi. Часть 2

Покупка
Новинка
Артикул: 842053.01.99
Доступ онлайн
640 ₽
В корзину
Работа посвящена созданию графических приложений в рамках визуальной среды Delphi. Каждый раздел содержит краткие информационные сведения, постановку задачи, описание средств ее реализации, код и комментарии к нему. Для студентов 1-го курса МГТУ им. Н.Э. Баумана, изучающих общеуниверситетскую дисциплину «Информатика».
Введение в среду визуального программирования Delphi. Часть 2 : методические указания / С. В. Борисов, С. С. Комалов, И. Л. Серебрякова [и др.] ; под. ред. Б. Г. Трусова. - Москва : Изд-во МГТУ им. Баумана, 2006. - 96 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2169165 (дата обращения: 20.09.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 
имени Н.Э. БАУМАНА 
ВВЕДЕНИЕ  В  СРЕДУ 
ВИЗУАЛЬНОГО  ПРОГРАММИРОВАНИЯ  
 DELPHI 
Часть 2 
Методические указания 
Под редакцией Б.Г. Трусова 
М о с к в а 
Издательство МГТУ им. Н.Э. Баумана 
2 0 0 6 


УДК 681.3.06 
ББК 32.97 
        В24 
Рецензент В.М. Недашковский 
В24 
Введение в среду визуального программирования Delphi: 
Метод. указания. – Ч. 2. / С.В. Борисов, С.С. Комалов, И.Л. Серебрякова и др.; Под. ред. Б.Г. Трусова. – М.: Изд-во МГТУ им. 
Н.Э. Баумана, 2006. – 96 с.  
 
Работа посвящена созданию графических приложений в рамках визуальной среды Delphi. Каждый раздел содержит краткие 
информационные сведения, постановку задачи, описание средств ее 
реализации, код и комментарии к нему. 
Для студентов 1-го курса МГТУ им. Н.Э. Баумана, изучающих 
общеуниверситетскую дисциплину «Информатика». 
Ил. 24. Табл. 14. Библиогр. 3 назв. 
УДК 681.3.06 
                                                                                                       ББК 32.97 
Методическое издание 
Станислав Васильевич Борисов 
Сергей Сергеевич Комалов 
Ирина Леонидовна Серебрякова  
Ирина Ивановна Степанова 
Олег Борисович Пащенко 
Введение в среду визуального программирования Delphi  
Часть 2 
Редактор А.В. Сахарова 
Корректор Л.И. Малютина 
Компьютерная верстка А.Ю. Ураловой 
Подписано в печать 30.11.2006. Формат 60×84/16. Бумага офсетная. 
Печ. л. 6,0. Усл. печ. л. 5,58. Уч.-изд. л. 5,25. 
Тираж 100 экз. Изд. № 40. Заказ 
Издательство МГТУ им. Н.Э. Баумана. 
105005, Москва, 2-я Бауманская ул., 5 
 
 МГТУ им. Н.Э. Баумана, 2006 


 
ПРЕДИСЛОВИЕ 
Развитие вычислительной техники и технологии программирования привело к разработке принципиально нового программного 
продукта – Delphi, в котором для кодирования программ используется разработанный фирмой Borland язык Object Pascal, хорошо 
согласуемый с другими средствами программирования, такими как 
Pascal и С. 
Представленная работа посвящена созданию графических приложений в рамках визуальной среды и ориентирована на начинающих программистов. Очевидно, что в небольшом по объему 
издании невозможно рассмотреть все вопросы, связанные с программированием на Object Pascal в Delphi. Многие темы, например 
работа с текстовыми файлами, создание Интернет-приложений, 
задачи динамического обмена данными между приложениями и 
другие, остались за рамками изложения.   
Представлено достаточное количество наглядных примеров, 
позволяющих легко разобраться с особенностями программирования реальных задач. Каждый раздел содержит краткие информационные сведения, постановку задачи, описание необходимых для 
ее реализации средств, соответствующего кода и комментариев к 
нему. 
Данные методические указания могут послужить дополнительным вспомогательным материалом при самостоятельном освоении графических возможностей среды Delphi и могут быть адресованы студентам МГТУ, изучающим общеуниверситетскую 
дисциплину «Информатика» на 1-м курсе обучения.   
 
 
3


1. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ DELPHI 
Среда визуального программирования предоставляет пользователю возможность разрабатывать приложения, которые могут выводить графику: схемы, чертежи, графики, текст, рисунки и иллюстрации. (Основным источником информации о компонентах и 
связанных с ними свойствах и методах является Help Delphi, можно также обратиться к самоучителю [1].) 
1.1. Основные понятия 
Приложение может выводить графику на поверхность объекта – 
формы или компонента. Существует ряд специальных компонентов 
для вывода готовых изображений (рисунков или фотографий) из графических файлов (компонент Image), некоторых геометрических фигур (компонент Shape), графиков и диаграмм (компонент Chart). 
Изображения, формируемые приложением, можно выводить на поверхность формы или компонентов Image и PaintBox. 
Поверхности объекта соответствует свойство Canvas. В свою 
очередь, свойство Canvas (канва, холст) – это объект типа (класса) 
TСanvas. Методы этого типа обеспечивают вывод графических 
примитивов (точек, линий, окружностей, прямоугольников и т.д.), 
а свойства позволяют задать характеристики выводимых графических примитивов (цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой 
информации). 
Канва состоит из отдельных точек – пикселей – и имеет свойство Pixels, которое содержит информацию о цвете каждой точки 
графической поверхности и представляет собой матрицу типа 
TColor. Положение пикселя характеризуется его горизонтальной 
x и вертикальной y координатами. Система координат канвы 
имеет началом левый верхний угол компонента или формы (координата x возрастает при перемещении слева направо, а координата y – при перемещении сверху вниз). Значения координат 
правой нижней точки поверхности вывода зависят от размера 
холста (рис. 1). Его размер можно установить с помощью «Инспектора объектов» или программно возвратить, обратившись к 
свойствам Height и Width компонентов или к свойствам формы 
ClientHeight и ClientWidth. 
Важнейшее свойство пикселя – его цвет (Color). Для описания 
цвета используется тип TColor. Свойство Color используется 
 
4


практически каждым компонентом. В Delphi определено множество констант типа TСolor. Одни из них непосредственно определяют цвета (например, clGreen – зеленый), другие определяют цвета 
элементов окон, которые могут меняться в зависимости от выбранной пользователем палитры цветов Windows (например, 
clBtnFace – цвет поверхности кнопок). 
Рис. 1. Координаты точек холста (канвы) 
В табл. 1 приведены именованные константы, которые можно 
использовать в качестве значения свойства Color. 
Таблица 1 
Константа 
Цвет 
Константа 
Цвет 
clBlack 
Черный 
clSilver 
Серебристый 
сlMaroon 
Каштановый 
clRed 
Красный 
clGreen 
Зеленый 
clLime 
Салатовый 
clOlive 
Оливковый 
clBlue 
Синий 
clNavy 
Темно-синий 
clFuchsia 
Ярко-розовый 
сlPurple 
Розовый 
clAqua 
Бирюзовый 
clTeal 
Зелено-голубой 
clWhite 
Белый 
clGray 
Серый 
 
 
1.2. Карандаш и кисть 
Методы, обеспечивающие вычерчивание на поверхности канвы графических примитивов, используют карандаш и кисть. 
Первый предназначен для вычерчивания линий, вторая – для заливки областей, ограниченных линиями. 
 
5


Карандашу соответствует свойство Pen – перо типа TPen. Это 
объект, в свою очередь имеющий ряд свойств. Одно из них – уже 
известное свойство Color – цвет, которым наносится рисунок. Второе свойство – Width (ширина линии), которое задается в пикселях 
и по умолчанию равно 1 пикселю. Третье свойство Style определяет 
вид линии. В табл. 2 приведены именованные константы, которые 
можно использовать в качестве значения свойства Style. 
Таблица 2 
Константа 
Стиль линии 
psSolid 
Сплошная линия 
psDash 
Пунктирная линия, длинные штрихи 
psDot 
Пунктирная линия, короткие штрихи 
psDashDot 
Пунктирная линия, чередование длинного и короткого штрихов 
psDashDotDot 
Пунктирная линия, чередование одного длинного и двух 
коротких штрихов 
psClear 
Линия не отображается (когда не нужно изображать границу 
области) 
Примечание. Все пунктирные линии имеют толщину, равную 1 пикселю. 
У пера есть еще одно свойство – Mode. Оно определяет то, как 
будет формироваться цвет точек линии в зависимости от цвета точек 
холста, через которые эта линия пролегает. По умолчанию линия вычерчивается цветом, определяемым значением свойства Pen.Color. 
В табл. 3 приведены некоторые именованные константы, которые можно использовать в качестве значения свойства Mode. 
Таблица 3 
Константа 
Цвет линии 
pmBlack 
Черный, не зависит от значения свойства Pen.Color 
pmWhite 
Белый, не зависит от значения свойства Pen.Color 
pmCopy 
Цвет линии определяется значением свойства Pen.Color 
pmNotCopy 
Цвет линии является инверсным по отношению к значению 
свойства Pen.Color 
pmNot 
Цвет линии определяется как инверсный по отношению  
к цвету точки холста 
У канвы имеется свойство PenPos типа TРoint (предопределенный тип TРoint представляет собой запись, поля х и y которой 
 
6


содержат координаты точки). Это свойство определяет в координатах канвы текущую позицию пера. Перемещение пера без прорисовки линии, т. е. изменение PenPos, производится методом 
канвы MoveTo (x, y). Точка с координатами ( x, y) становится текущей и от нее методом LineTo (x, y) можно провести линию в 
точку с другими координатами (x, y). При этом PenPos определяет 
уже конечную точку линии, и новый вызов LineTo будет проводить линию из этой новой текущей точки. 
Кисти соответствует свойство канвы Brush – кисть типа 
TBrush. Оно определяет фон и цвет заполнения замкнутых фигур. 
Brush – это объект, имеющий в свою очередь ряд свойств. Свойство Color определяет цвет заполнения фигуры, а свойство Style – 
шаблон (штриховку). В табл. 4 приведены именованные константы, которые можно использовать в качестве значения свойства 
Style. 
Таблица 4 
Константа 
Стиль заполнения области 
bsSolid 
Сплошная заливка 
bsClear 
Область не закрашивается 
bsHorisontal 
Горизонтальная штриховка 
bsVertical 
Вертикальная штриховка 
bsFDiagonal 
Диагональная штриховка с наклоном линий вперед 
bsBDiagonal 
Диагональная штриховка с наклоном линий назад 
bsCross 
Горизонтально-вертикальная штриховка, в клетку 
bsDiagCross 
Диагональная штриховка, в клетку 
В табл. 5 приведены некоторые методы канвы для рисования 
фигур. 
Таблица 5 
Метод 
Описание 
Arc (x1, y1, x2, y2, 
x3, y3, x4, y4: integer) 
Рисует дугу окружности или эллипса. Точки (x1, y1) 
и (x2, y2) определяют прямоугольник, описывающий 
эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его 
центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей 
через его центр и точку (x4, y4). Дуга рисуется против часовой стрелки от начальной до конечной точки 
 
 
7


Окончание табл. 5 
Метод 
Описание 
Chord (x1, y1, x2, y2, 
x3, y3, x4, y4: integer) 
Рисует дугу окружности или эллипса, замкнутую хордой. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x3, y3). Конечная точка 
дуги определяется пересечением эллипса с прямой, 
проходящей через его центр и точку (x4, y4). Дуга рисуется против часовой стрелки от начальной до конечной точки. Хорда соединяет точки (x3, y3) и (x4, y4) 
Ellipse (x1, y1, x2, 
y2: integer)  
Рисует заполненную окружность или эллипс. Точки(x1, 
y1) и (x2, y2) определяют прямоугольник, описывающий эллипс 
Pie (x1, y1, x2, y2, 
x3, y3, x4, y4: integer) 
Рисует замкнутую фигуру – сектор окружности или эллипса. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через 
его центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через 
его центр и точку (x4, y4). Дуга рисуется против часовой 
стрелки от начальной до конечной точки. Рисуются прямые, ограничивающие сектор и проходящие через центр 
эллипса и точки (x3, y3) и (x4, y4) 
Polygon (Points: array of TPoint)  
Рисует замкнутый многоугольник по координатам угловых точек, заданных массивом Points. Первая из указанных точек соединяется с последней 
PolyLine 
(Points: 
array of TPoint) 
Рисует кусочно-линейную незамкнутую кривую по 
координатам точек, заданных массивом Points. При 
этом текущая позиция PenPos пера не изменяется 
Rectangle (x1, y1, x2, 
y2: integer)  
Рисует прямоугольник, верхний левый угол которого 
имеет координаты (x1, y1), а нижний правый – (x2, y2) 
RoundRect (x1, y1, 
x2, y2, x3, y3: integer) 
Рисует прямоугольник со скругленными углами, верхний левый угол которого имеет координаты (x1, y1), а 
нижний правый – (x2, y2). Углы скругляются с помощью эллипсов с шириной x3 и высотой y3 
Примечание. Для изображения закрашенной фигуры перед использованием 
соответствующего метода (Chord, Ellipse, Pie, Polygon и др.) необходимо заказать 
цвет и стиль ее закраски (Brush.Color и Brush.Style). 
Для заполнения замкнутых областей произвольной формы 
можно использовать метод  
FloodFill (x, y: integer; Color: TColor; FillStyle: TFillStyle)  
 
8


Тип TFillStyle определен следующим образом: 
type TFillStyle = (fsSurface, fsBorder); 
Точка с координатами (x, y) является произвольной внутренней 
точкой заполняемой области. Граница этой области определяется 
сочетанием параметров Color и FillStyle. Параметр Color указывает 
цвет, который используется при определении границы заполняемой области, а параметр FillStyle определяет, как именно по этому 
цвету определяется граница. Если FillStyle = fsSurface, то заполняется область, окрашенная цветом Color, а на других цветах метод 
останавливается. Если FillStyle = Border, то наоборот, заполняется 
область, окрашенная любыми цветами, не равными Color, а на 
цвете Color метод останавливается.  
Для вывода текста на графическую поверхность используется 
метод TextOut (x, y : integer; text : string). Для определения параметров выводимого текста используется свойство канвы Font – 
шрифт типа TFont, которое в свою очередь является объектом и 
имеет ряд свойств. 
В табл. 6 приведены свойства объекта Font. 
Таблица 6 
Свойство 
Назначение 
Name 
Определяет вид (название) шрифта (Arial, Times New Roman, 
Courier и т. д.) 
Size 
Pазмер шрифта в пунктах (points). Один пункт равен 1/72 дюйма 
Style 
Стиль начертания символов задается с помощью предопределенных констант: fsItalic (курсив), fsBold (полужирный), fsUnderLine 
(подчеркнутый), fsStrikeOut( перечеркнутый). Это свойство является множеством, что позволяет комбинировать нужные стили 
Color 
Цвет символов  
Height 
Размер шрифта в пикселях 
Текст выводится на графическую поверхность в позицию с координатами (x, y) в соответствии с текущими установками шрифта 
Font. Фон надписи определяется установками текущей кисти Brush 
(если нет необходимости в фоне для надписи, то перед выводом 
текста свойству Brush.Style нужно присвоить значение bsClear или 
задать свойству Brush.Color цвет, совпадающий с цветом поверхности, на которую выводится текст – например, clBtnFace). По завершении метода текущей позицией PenPos пера Pen становится 
конец выведенного текста. 
 
9


Перечисленные свойства и методы представляют не все графические возможности Delphi. Однако они обеспечивают около 80 % 
потребностей, обычно возникающих при работе с графикой.  
1.3. Порядок создания изображения 
Как уже отмечалось, канва представляет собой область, на 
которой можно рисовать или отображать готовые иллюстрации. 
Она является свойством формы или перечисленных выше компонентов. Если для рисования используется, например, компонент Image или PaintBox, то сначала его размещают на форме. 
Затем на канве компонента с помощью перечисленных свойств 
и методов создают изображение – записывают код в обработчик 
какого-либо события.  
1.4. Создание изображений плоских геометрических объектов 
При создании приложений, формирующих плоское изображение, необходимо выяснить, на какие элементарные геометрические 
фигуры (объекты): точки, отрезки, прямоугольники, дуги, окружности и др. – можно разбить исходный рисунок. В результате проведенного анализа можно подобрать для их изображения стандартные методы. После создания изображения при необходимости 
замкнутые области заполняют выбранным стилем и цветом. Однако большинство методов позволяет выводить требуемый объект 
только частного положения. Поэтому для вывода таких объектов 
при их произвольной ориентации на плоскости следует разрабатывать собственные процедуры. 
При формировании изображения необходимо составить выражения для вычисления координат точек, используемых при обращении к процедурам и методам рисования объектов. При этом одну из точек изображения принимают за базовую, а координаты 
всех других точек вычисляют по отношению к ней. Такой подход 
позволяет путем изменения только координат базовой точки изменить расположение изображения на экране. Необходимо следить 
за тем, чтобы вычисляемые координаты точек принимали целые 
неотрицательные значения.  
1.5. Преобразование изображений 
При формировании изображений часты ситуации, когда рисунок включает в себя ряд подрисунков, различающихся между со 
10


Доступ онлайн
640 ₽
В корзину