Введение в среду визуального программирования Turbo Delphi. Часть 2
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Авторы:
Борисов Станислав Васильевич, Комалов Сергей Сергеевич, Пащенко Олег Борисович, Серебрякова Ирина Леонидовна
Под ред.:
Трусов Борис Георгиевич
Год издания: 2011
Кол-во страниц: 100
Дополнительно
Пособие является практическим руководством для освоения среды визуального программирования Turbo Delphi. В нем рассмотрены особенности разработки простых графических приложений. Пособие отличается доступностью изложения, наглядными примерами и адресовано студентам младших курсов всех специальностей университета, владеющим основами программирования на языке Паскаль. Для студентов первого курса МГТУ им. Н.Э. Баумана,
изучающих дисциплину «Информатика».
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 681: Точная механика. Автоматика. Приборостроение
ОКСО:
- ВО - Бакалавриат
- 02.03.01: Математика и компьютерные науки
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет имени Н.Э. Баумана ВВЕДЕНИЕ В СРЕДУ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ TURBO DELPHI Часть 2 Под редакцией Б.Г. Трусова Рекомендовано Научно-методическим советом МГТУ им. Н.Э. Баумана в качестве учебного пособия по программированию для изучающих дисциплину «Информатика» Москва Издательство МГТУ им. Н.Э. Баумана 2011
УДК 681.3.06(075.8) ББК 32.973.26-018.2 В24 Рецензенты: Г.И. Ревунков, В.М. Семин В24 Введение в среду визуального программирования Turbo Delphi : учеб. пособие. – Ч. 2 / С.В. Борисов, С.С. Комалов, О.Б. Пащенко, И.Л. Серебрякова ; под ред. Б.Г. Трусова. – М. : Изд-во МГТУ им. Н.Э. Баумана, 2011. – 99, [1] с. : ил. Пособие является практическим руководством для освоения среды визуального программирования Turbo Delphi. В нем рассмотрены особенности разработки простых графических приложений. Пособие отличается доступностью изложения, наглядными примерами и адресовано студентам младших курсов всех специальностей университета, владеющим основами программирования на языке Паскаль. Для студентов первого курса МГТУ им. Н.Э. Баумана, изучающих дисциплину «Информатика». УДК 681.3.06(075.8) ББК 32.973.26-018.2 Учебное издание Борисов Станислав Васильевич Комалов Сергей Сергеевич Пащенко Олег Борисович Серебрякова Ирина Леонидовна ВВЕДЕНИЕ В СРЕДУ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ TURBO DELPHI Часть 2 Редактор С.А. Серебрякова Корректор Е.В. Авалова Компьютерная верстка О.В. Беляевой Подписано в печать 27.10.2011. Формат 6084/16. Бумага офсетная. Усл. печ. л. 5,81. Тираж 100 экз. Изд. № 58. Заказ Издательство МГТУ им. Н.Э. Баумана. Типография МГТУ им. Н.Э. Баумана. 105005, Москва, 2-я Бауманская ул., 5. МГТУ им. Н.Э. Баумана, 2011
ВВЕДЕНИЕ Пакет Turbo Delphi – это среда разработки приложений, ориентированных на работу в операционных системах Microsoft Windows 2000 Professional, Micrоsoft Windows XP Professional или Microsoft Windows Server 2003. В пособии использована версия Turbo Delphi Explorer, предназначенная для обучения программированию. Авторы надеются, что читатель как минимум ознакомился с информацией, представленной в первой части учебного пособия «Введение в среду визуального программирования Turbo Delphi». Данная работа посвящена созданию графических приложений в рамках визульной среды и ориентирована на начинающих программистов. В пособии приведено достаточное количество наглядных примеров, позволяющих легко разобраться с особенностями программирования реальных задач. Каждый раздел содержит краткие информационные сведения, постановку задачи, описание необходимых для ее реализации средств, соответствующего кода и комментариев к нему. Предлагаемое пособие адресовано студентам МГТУ им. Н.Э. Баумана, изучающим общеуниверситетскую дисциплину «Информатика» на первом курсе обучения, и может послужить дополнительным вспомогательным материалом при самостоятельном освоении графических возможностей среды Turbo Delphi. 3
1. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ TURBO DELPHI Среда визуального программирования предоставляет пользователю возможность разрабатывать приложения, которые могут выводить графику: схемы, чертежи, графики, текст и рисунки. Основными источниками информации о компонентах среды и связанных с ними свойствах и методах являются файлы системы-помощника Help Turbo Delphi и самоучитель [1]. 1.1. Основные понятия Приложение может выводить графику на поверхность объекта – формы или компонента. Существует ряд специальных компонентов для вывода готовых изображений (рисунков или фотографий) из графических файлов (компонент Image), некоторых геометрических фигур (компонент Shape). Изображения, формируемые приложением, можно выводить на поверхность формы или компонентов Image и PaintBox. Поверхности объекта соответствует свойство Canvas. В свою очередь, свойство Canvas (канва, холст) – это объект класса TСanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. п.), а свойства позволяют задавать характеристики выводимых графических примитивов (цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации). Канва состоит из отдельных точек – пикселей – и имеет свойство Pixels, которое содержит информацию о цвете каждой точки графической поверхности и представляет собой матрицу класса TColor. Положение пикселя характеризуется его горизонтальной (x) и вертикальной (y) координатами. Начало системы координат канвы находится в левом верхнем углу компонента или формы (координата x возрастает при перемещении слева направо, а координата y – при перемещении сверху вниз). Значения координат 4
Рис.1. Координаты точек канвы (холста) правой нижней точки поверхно- сти вывода зависят от размера канвы (рис. 1), который можно установить с помощью «Инспектора объектов» или задать программно, обратившись к свойствам Height и Width компонентов или к свойствам формы ClientHeight и ClientWidth. Важнейшее свойство пикселя – его цвет (Color). Для описания цвета применяется класс TColor. Свойство Color используется практически каждым компонентом. В среде Turbo Delphi определено множество констант типа TСolor. Одни из них непосредственно задают цвета (например, clGreen – зеленый), другие устанавливают цвета элементов окон, которые могут изменяться в зависимости от выбранной пользователем палитры цветов Windows (например, clBtnFace – цвет поверхности кнопок). Именованные константы, которые можно использовать в качестве значения свойства Color, сведены в табл. 1. Таблица 1 Константа Цвет Константа Цвет clBlack Черный clSilver Серебристый сlMaroon Каштановый clRed Красный clGreen Зеленый clLime Светло-зеленый clOlive Оливковый clBlue Синий clNavy Темно-синий clFuchsia Ярко-розовый сlPurple Розовый clAqua Бирюзовый clWhite Белый clTeal Зелено-голубой clGray Серый 5
1.2. Карандаш и кисть Методы, обеспечивающие вычерчивание на поверхности канвы графических примитивов, используют карандаш и кисть. Первый предназначен для вычерчивания линий, вторая – для заливки областей, ограниченных линиями. Карандашу соответствует свойство Pen – перо класса TPen. Это объект, имеющий, в свою очередь, ряд свойств. Одно из них – уже известное свойство Color – цвет, которым наносится рисунок. Второе свойство – Width (ширина линии), которое задается в пикселях и по умолчанию равно одному пикселю. Третье свойство Style определяет вид линии. Именованные константы, которые можно использовать в качестве значения свойства Style, перечислены в табл. 2. Таблица 2 Константа Стиль линии psSolid Сплошная линия psDash Пунктирная линия, длинные штрихи psDot Пунктирная линия, короткие штрихи psDashDot Пунктирная линия, чередование длинного и короткого штрихов psDashDotDot Пунктирная линия, чередование одного длинного и двух коротких штрихов psClear Линия не отображается (когда не нужно изображать границу области) Примечание. Все пунктирные линии имеют толщину один пиксель. У пера есть еще одно свойство – Mode. Оно определяет, как будет формироваться цвет точек линии в зависимости от цвета тех точек канва, через которые эта линия пролегает. По умолчанию линия вычерчивается цветом, определяемым значением свойства Pen.Color. Некоторые именованные константы, которые можно использовать в качестве значения свойства Mode, сведены в табл. 3. 6
Таблица 3 Константа Цвет линии pmBlack Черный, не зависит от значения свойства Pen.Color pmWhite Белый, не зависит от значения свойства Pen.Color pmCopy Цвет линии определяется значением свойства Pen.Color pmNotCopy Цвет линии является инверсным по отношению к значению свойства Pen.Color pmNot Цвет линии определяется как инверсный по отношению к цвету точки канвы У канвы имеется свойство PenPos класса TРoint (предопределенный тип TРoint представляет собой запись, поля х и y которой содержат координаты точки). Это свойство определяет текущую позицию пера в координатах канвы. Перемещение пера без прорисовки линии, т. е. изменение свойства PenPos, осуществляется методом канвы MoveTo (x, y). Точка с координатами (x, y) становится текущей, и от нее методом LineTo (x, y) можно провести линию в точку с другими координатами (x, y). При этом свойство PenPos определяет уже конечную точку линии, и новый вызов команды LineTo будет проводить линию из этой новой текущей точки. Кисти соответствует свойство канвы Brush – кисть класса TBrush. Оно определяет фон и цвет заполнения замкнутых фигур. Brush – это объект, имеющий, в свою очередь, ряд свойств. Свойство Color определяет цвет заполнения фигуры, а свойство Style – стиль заполнения (штриховку). Именованные константы, которые можно использовать в качестве значения свойства Style, перечислены в табл. 4. Таблица 4 Константа Стиль заполнения области bsSolid Сплошная заливка bsClear Область не закрашивается bsHorisontal Горизонтальная штриховка bsVertical Вертикальная штриховка bsFDiagonal Диагональная штриховка с наклоном линий вперед bsBDiagonal Диагональная штриховка с наклоном линий назад bsCross Горизонтально-вертикальная штриховка в клетку bsDiagCross Диагональная штриховка в клетку 7
Некоторые методы канвы для рисования фигур указаны в табл. 5. Таблица 5 Метод Описание Arc (x1, y1, x2, y2, x3, y3, x4, y4: integer) Рисует дугу окружности или эллипса. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x4, y4). Дуга рисуется против хода часовой стрелки от начальной до конечной точки 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) 8
Окончание табл. 5 Метод Описание 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). Тип TFillStyle определен следующим образом: type TFillStyle = (fsSurface, fsBorder). Точка с координатами (x, y) является произвольной внутренней точкой заполняемой области. Граница этой области задается сочетанием параметров Color и FillStyle. Параметр Color указывает цвет, который используется при определении границы заполняемой области, а параметр FillStyle устанавливает, как именно по этому цвету определяется граница. Если FillStyle = fsSurface, то заполняется область, окрашенная цветом Color, а на других цветах заливка прекращается. Если FillStyle = Border, то, наоборот, заполняется область, окрашенная любыми цветами, не равными Color, а на цвете Color заливка прекращается. 9
Для вывода текста на графическую поверхность применяется метод TextOut (x, y: integer; text: string). Для определения параметров выводимого текста используется свойство канвы Font – шрифт класса TFont, которое, в свою очередь, является объектом и имеет ряд свойств. Свойства объекта Font указаны в табл. 6. Таблица 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 становится конец выведенного текста. Перечисленные свойства и методы представляют не все графические возможности языка Delphi. Однако они обеспечивают около 80 % потребностей, обычно возникающих при работе с графикой. 1.3. Порядок создания изображения Как уже отмечалось, канва представляет собой область, на которой можно рисовать или отображать готовые иллюстрации. Она 10