Помощь в написании студенческих работ
Антистрессовый сервис

Возможности технологии Delphi

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Метод Polygon вычерчивает многоугольник. В качестве параметра метод получает массив типа TPoint. Каждый элемент массива представляет собой запись, поля (х, у) которой содержат координаты одной вершины многоугольника. Метод Polygon вычерчивает многоугольник, последовательно соединяя прямыми линиями точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью… Читать ещё >

Возможности технологии Delphi (реферат, курсовая, диплом, контрольная)

  • Введение 2
  • 1. Структура проекта на Delphi 3
  • 2. Графические возможности языка программирования Delphi 6
  • 3. Листинг программы 12
  • Заключение 16
  • Список использованных источников 17
  • Приложения 18

Цель курсовой работы является отражение приобретенных знаний и практические навыки по курсу «Основы алгоритмизации и программирования».

Для решения поставленной задачи как основные использованы следующие источники: Бобровский, С. И. Технологии Delphi 2006. Новые возможностиСПб.: Питер, 2006; Культин, Н. Б. Основы программирования в Delphi 7 — СПб.: БХВ-Петербург, 2003.

Для реализации данной задачи была использована среда Delphi 7.

Используя визуальные компоненты из вкладки Standart, System, и зная приемы работ с графическими процедурами был разработан проект на Delphi 7.

Проект состоит из трех форм. Осуществлены переход из главной формы на подчиненные формы. Программа демонстрирует использование графических процедур и анимацию графического объекта.

программирование delphi графический модуль

1. СТРУКТУРА ПРОЕКТА НА DELPHI

Любая программа в DELPHI состоит из файла проекта (файл с расширением DPR) и одного или нескольких модулей (файлы с расширением PAS). Каждый из таких файлов описывает программную единицу Object Pascal.

Файл проекта представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Эта программа автоматически создается DELPHI и содержит лишь несколько строк. (View/ProjectSource).

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

Любой модуль имеет следующую структуру:

· Заголовок

· Секция интерфейсных объявлений

· Секция реализаций

· Секция инициации

· Терминатор

Один из модулей, главный, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения формирует DELPHI.

Заголовок открывается зарезервированным словом UNIT, за которым следует имя модуля и точка с запятой. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением

USES <�список модулей>

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

Секция реализаций открывается словом IMPLEMENTATION, содержит описание подпрограмм. В ней могут появляться локальные для модуля объекты.

Секция инициации — открывается словом BEGIN.

Терминатором модуля, как и терминатором программы является END с точкой.

Наиболее распространенным типом модуля в DELPHI является ФОРМА — модуль со связанным с ним окном. Интерфейсная часть такого модуля обычно содержит объявление нового класса, и автоматически обновляется в ходе конструирования окна. В интерфейсной части модуля-формы содержится также объявление объекта для соответствующего оконного класса.

Кроме того, есть модули, не связанные с видимыми окнами:

Модули данных имеют связанные с ними окна, однако эти окна никогда не появляются на экране. Необходимость в них появляется при использовании, например, компонентов доступа к базам данных страницы DATA ACCESS, и т. д.

Модули динамических библиотек предназначены для создания широко используемых в WINDOWS динамически связываемых библиотек DLL.

Модули потоков предназначены для реализации так называемых потоков команд — фрагментов программы, которые исполняются параллельно с другими фрагментами, разделяя с ними время процессора и остальные системные ресурсы.

Разработчики языка OBJECT PASCAL ввели для обозначения объектов специальный термин — Класс. Классами В OBJECT PASCAL называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами.

В основе классов лежат три фундаментальных принципа, которые называются инкапсуляция, наследование и полиморфизм.

Инкапсуляция.

Класс представляет собой единство трех сущностей — полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Библиотека классов Delphi — это, фактически, набор «кирпичиков», созданных программистами Borland для построения программ.

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

Type

TMyClass = class

aIntField :Integer;

aStrField :String;

aObjField :Tobject;

end;

Инкапсулированные в классе процедуры и функции называются методами. Они объявляются так же, как и обычные подпрограммы:

Type

TMyClass = class

Function MyFunc (aPar: Integer) :Integer;

Procedure MyProc;

end;

Свойства — это специальный механизм классов, регулирующий доступ к полям. Свойство объекта характеризуется полем, хранящем значение свойства, и двумя методами, обеспечивающими доступ к полю свойства — метод записи свойства (write), метод чтения свойства (read).

Наследование

Концепция объектно-ориентированного программирования предполагает возможность определять новые классы посредством добавления полей свойств и методов к уже существующим классам. Такой механизм получения новых классов называется порождением. При этом новый, порожденный, класс наследует свойства и методы своего базового, родительского класса.

Полиморфизм — это возможность использовать одинаковые имена для методов, входящих в различные классы. Концепция полиморфизма обеспечивает при применении метода к объекту использование именно того метода, который соответствует классу объекта.

2. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI

Холст (канва). На Form или в графических окнах Image, BitMap и PaintBox можно рисовать различные графические примитивы с использованием объекта Canvas (холст).

Цвет, толщина и стиль линий, которым рисуются графические примитивы на холсте, задаются как значения свойства Pen (карандаш).

Для установки цвета линии используется свойство color:

Canvas.Pen.color:=цвет (константа либо шестнадцатеричный код)

Цвет. Значение аргумента color можно задать различными способами:

· с помощью одной из нескольких десятков констант, определяющих цвет (clBlack — черный, clBlue — синий, clGreen — зеленый, clRed — красный, clYellow — желтый, clWhite — белый и т. д.);

· с помощью цветовой модели RGB (красный, зеленый, синий) в шестнадцатеричном представлении, в котором для задания интенсивностей базовых цветов используются по два шестнадцатеричных разряда (например, $ 00FF0000 — синий, $ 0000FF00 — зеленый, $ 00FF — красный; $ 0 — черный и $ 00FFFFFF — белый).

В случае отсутствия аргумента color рисование будет производиться цветом, принятым по умолчанию (черным).

Для установки толщины линии используется свойство Width:

Canvas.Pen.Width:= число пикселей;

Для установки типа рисования линии используется свойство Style:

Canvas.Pen.Style:=тип линии

psSolid — сплошная линия psDash — штриховая линия psDot — пунктирная линия psDashDot — штрих-пунктирная линия psDashDotDot — линия чередующая штрих и два пунктира psClear — отсутствие линии

Цвет и стиль заливки внутри геометрических примитивов задаются как значения свойства Brush (кисть).

Для установки цвета заливки используется свойство color:

Canvas.Brush.color:=цвет

Для установки типа заливки используется свойство Style:

Canvas.Brush.Style:=тип заливки

bsSolid — сплошная цветом кистиbsClear — цветом фона bsBDiagonal — диагональ правая bsFDiagonal — диагональ левая bsCrossв - клетку bsDiagCross — диагональная клетка bsHorizontal — горизонтальные линии bsVertical — вертикальные линии

Точка. Pixels — установка точки с заданными координатами и цветом:

Объект.Canvas.Pixels[X, Y] := цвет;

Аргументами метода являются X, Y — целочисленные координаты точки.

Линия. Метод LineTo — рисование линии:

Объект.Canvas.LineTo (X1,Y1); - рисует прямую линию от текущих координат в точку с координатами X1, Y1.

Переход на требуемые текущие координаты реализуется с помощью метода MoveTo:

Объект.Canvas.MoveTo (X0,Y0)

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

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

var p: array[1.N] of tpoint;

begin

p[11]. x := p[1]. x;p[11].y := p[1]. y;

form1.Canvas.Polyline (p)

Метод (процедура) FloodFill заполняет замкнутую область канвы текущей кистью начиная с точки Х, У и распространяется во все стороны от неё

Объект.Canvas.FloodFill (X, Y, color, fillStyle);

fillStyle может принимать одно из двух значений: fsBorder (заливка прекращается на точках с цветом color), fsSurfase (заливка распространяется на все точки с цветом color). Перед использованием процедуры надо установить цвет и стиль кисти (Brush)

Многоугольник

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

Цвет и стиль границы многоугольника определяются значениями свойства Реп, а цвет и стиль заливки области, ограниченной линией границы, — значениями свойства Brush, причем область закрашивается с использованием текущего цвета и стиля кисти.

Перо может рисовать не только линии, но и фигуры

Прямоугольник. Метод Rectangle — прямоугольника:

Объект.Canvas.Rectangle (X1,Y1,X2,Y2)

Метод Rectangle рисует прямоугольник с координатами верхнего левого (X1, Y1) и правого нижнего угла (X2, Y2) прямоугольника.

Метод RoundRec тоже вычерчивает прямоугольник, но со скругленными углами:

Объект .Canvas.RoundRec (x1,y1,х2, у2, х3, у3)

где:

· x1, y1, х2, у2 — параметры, определяющие положение углов прямоугольника, в который вписывается прямоугольник со скругленными углами;

· х3 и у3 — размер эллипса, одна четверть которого используется для вычерчивания скругленного угла.

Есть еще два метода, которые вычерчивают прямоугольник, используя в качестве инструмента только кисть (Brush). Метод FillRect вычерчивает закрашенный прямоугольник, а метод FrameRect — только контур. У каждого из этих методов лишь один параметр — структура типа TRect. Поля структуры TRect содержат координаты прямоугольной области, они могут быть заполнены при помощи функции Rect.

var

r1, r2: TRect; // координаты углов прямоугольников

begin

r1 := Rect (20,20,60,40);

r2 := Rect (10,10,40,50);

Рисование окружностей и эллипсов реализуется методом Ellipse:

Объект.Canvas.Ellipse (X1,Y1,X2,Y2)

X1,Y1,X2,Y2 — определяют координаты верхнего левого (X1, Y1) и правого нижнего угла (X2, Y2) прямоугольника, в которую вписана окружность (эллипс).

Дуга Вычерчивание дуги выполняет метод Arc:

Объект. Canvas. Arc (x1,y1,х2,у2,х3,у3,х4,у4)

где:

· x1, y1, х2, у2 — параметры, определяющие эллипс (окружность), частью которого является вычерчиваемая дуга;

· х3, у3 — параметры, определяющие начальную точку дуги; х4, у4 — параметры, определяющие конечную точку дуги.

Начальная (конечная) точка — это точка пересечения границы эллипса и прямой, проведенной из центра эллипса в точку с координатами х3 и у3 (х4, у4). Дуга вычерчивается против часовой стрелки от начальной точки к конечной:

Сектор

Метод pie вычерчивает сектор эллипса или круга:

Объект. Canvas. Pie (x1,y1,x2,y2,х3,у3,х4,у4)

где:

· x1, y1, х2, у2 — параметры, определяющие эллипс (окружность), частью которого является сектор;

· х3, у3, х4, у4 — параметры, определяющие координаты конечных точек прямых, являющихся границами сектора.

Начальные точки прямых совпадают с центром эллипса (окружности). Сектор вырезается против часовой стрелки от прямой, заданной точкой с координатами (хЗ, уз), к прямой, заданной точкой с координатами (х4, у4)

Вывод текста на холст. Для вывода текста на холст используется метод TextOut:

Объект.Canvas.TextOut (X, Y, Text)

X, Y — координаты точки холста, от которой выполняется вывод текста. Text — строковая переменная или строка, которая выводится на холст.

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

Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству PenPos.

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

Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству PenPos.

TextOut (PenPos.X, PenPos. Y, `text');

3. ЛИСТИНГ ПРОГРАММЫ

// Главный модуль

nit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ShellAPI;

type

TForm2 = class (TForm)

Label1: TLabel;

Label2: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

Button1: TButton;

Button2: TButton;

procedure N1Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses olf_;

{$R *.dfm}

procedure TForm2. N1Click (Sender: TObject);

begin

Showmessage ('Программа написана студентом группы 3ПОВТ-109 Шадриным Ю.');

end;

procedure TForm2. N2Click (Sender: TObject);

begin

Showmessage ('Программа состоит из трех форм');

end;

procedure TForm2. N3Click (Sender: TObject);

begin

Close;

end;

procedure TForm2. Button1Click (Sender: TObject);

begin

form1.show;

end;

procedure TForm2. Button2Click (Sender: TObject);

begin

ShellExecute (Handle, nil, PChar ('ship.exe'), nil, nil, SW_RESTORE);

end;

end.

// листинг второго модуля

unit olf_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class (TForm)

Label1: TLabel;

procedure FormPaint (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

a:byte;

implementation

{$R *.dfm}

// рисует Олимпийский флаг

procedure TForm1. FormPaint (Sender: TObject);

begin

a:=30;

with Canvas do

begin

// полотнище

Canvas.Pen.Width := 1;

Canvas.Pen.Color := clBlack;

Canvas.Brush.Color := clCream;

Pen.Width := 2;

Brush.Style := bsClear; // область внутри круга не закрашивать

Pen.Color := clBlue;

Ellipse (40-a, 40-a, 80+a, 80+a);

Pen.Color := clBlack;

Ellipse (70-a+20,40-a, 110+a+20,80+a);

Pen.Color := clRed;

Ellipse (100-a+40,40-a, 140+a+40,80+a);

Pen.Color := clYellow;

Ellipse (55-a, 65-a+20,95+a, 105+a+20);

Pen.Color := clGreen;

Ellipse (85-a+20,65-a+20,125+a+20,105+a+20);

end;

end; end.

ЗАКЛЮЧЕНИЕ

Программа предназначена для выполнения операции над матрицей. Программа написана на языке Object Pascal. Работает в среде операционных систем Widows 2000/XP. Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор Pentium IV или Celeron 2.0Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске — порядка 1 Гбайт.

Программа запускается нажатием на файл OLF.exe. На открывающем окне формы расположен меню MainMenu, через которого можно открыть справки, помощь и закрыть программу.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Фаронов, В. В. Turbo Pascal [Текст]: учеб. пособие / В. В. Фаронов. — СПб.: Питер, 2006. — 366 с.

2. Бобровский, С. И. Технологии Delphi 2006. Новые возможности [Текст] / С. И. Боб-ровский. — СПб.: Питер, 2006.

3. Культин, Н. Б. Delphi в задачах и примерах [Текст] / Н. Б. Культин. — СПб.: БХВ-Петербург, 2004.

4. Культин, Н. Б. Основы программирования в Delphi 7 [Текст] / Н. Б. Культин. — СПб.: БХВ-Петербург, 2003.

5. Немнюгин, С. А. Turbo Pascal. Программирование на языке высокого уровня [Текст]: учебник для вузов / С. А. Немнюгин. — 2-е изд., перераб. и доп. — СПб.: Питер, 2006.

6. Немнюгин, С. А. Turbo Pascal: Практикум [Текст] / С. А. Немнюгин. — 2-е изд. Перераб. и доп. — СПб.: Питер, 2006.

7. Павловская, Т. А. Паскаль. Программирование на языке высокого уровня [Текст]: учебник для вузов / Т. А. Павловская. — СПб.: Питер, 2004. (допущен Министерством образования).

8. Фаронов, В. В. Турбо Паскаль 7.0. Практика программирования [Текст]: учебное пособие / В. В. Фаронов. — М.: ОМД Групп, 2003.

9. Фаронов, В. В. Delphi 2005. Язык, среда, разработка приложений [Текст] / В. В. Фаронов. — СПб.: Питер, 2005.

10. Федоренко, Ю. П. Алгоритмы и программы на Turbo Pascal [Текст]: учебный курс / Ю. П. Федоренко. — СПб.: Питер, 2001.

ПРИЛОЖЕНИЯ

Графические компоненты

Пиктограмма

Название

Страница

Назначение

Image (изображение)

Additional

Используется для отображения графики: пиктограмм, битовых изображений и метафайлов

Shape (форма)

Additional

Используется для построения геометрических примитивов

DrawGrid (таблица рисунков)

Additional

Используется для отображения в строках и столбцах нетекстовых данных

Chart (диаграммы и графики)

Additional

Используется для создания диаграмм и графиков

PaintBox (окно для рисования)

System

Используется для создания на форме некоторой области, в которой можно рисовать

Показать весь текст
Заполнить форму текущей работой