Разработка приложения формирования и отображения квадратов

Понятие пакета "Delphi" как среда быстрого разработки программ, его основные преимущества. Математическая формулировка задачи и изображение квадрата. Структурная схема программы, ее составные элементы и модули. Порядок реализации технологии COM.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.06.2013
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Белорусский национальный технический университет

Кафедра программного обеспечения вычислительной техники и автоматизированных систем

Пояснительная записка

к курсовой работе

по дисциплине “Разработка приложений в визуальных средах”

Тема: ”Разработка приложения формирования и отображения квадратов”

Минск 2013

Содержание

Введение

1. Математическая формулировка задачи

2. Описание программы

2.1 Структурная схема программы (связи модулей)

2.2 Список модулей из которых состоит программа

2.3 В программе реализованы следующие классы

2.3 Описание разработанного класса

2.4 Описание динамических библиотек

2.5 Описание реализации технологии COM

3. Руководство пользователя

4. Методика испытаний

Заключение

Список использованной литературы

Приложение

Введение

Целью курсовой работы по дисциплине: ”Разработка приложений в визуальных средах" на тему «Разработка приложения формирования и отображения квадратов» является разработка программного обеспечения для компьютера, которе будет графически отображать геометрическую фигуру.

Delphi -- это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi -- строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

Delphi - это комбинация нескольких важнейших технологий:

Высокопроизводительный компилятор в машинный код

Объектно-ориентированная модель компонент

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

Масштабируемые средства для построения баз данных

Основное назначение Delphi - служить средством для быстрого создания широкого класса Windows-приложений, включая приложения, отвечающие технологии распределенной обработки данных, называемой технологией клиент-сервер.

Среда Delphi включает в себя полный набор визуальных средств для быстрой разработки приложений, поддерживающих как создание пользовательских интерфейсов, так и таблиц базы данных. Библиотека классов, входящих в Delphi, инкапсулирующих различные группы функций Windows API. Delphi является системой с открытой архитектурой, что позволяет дополнять ее новыми средствами, и переносить на различные платформы.

Для решения поставленной задачи была использована графическая библиотека OpenGL. Open Graphics Library определяет независимый от языка программирования, платформонезависимый программный интерфейс для написания приложений, использующих двухмерную и трёхмерную компьютерную графику. На базовом уровне, OpenGL -- это просто спецификация, то есть документ, описывающий набор функций и их точное поведение. Производители оборудования на основе этой спецификации создают реализации -- библиотеки функций, соответствующих набору функций спецификации. Реализация призвана эффективно использовать возможности оборудования.

1. Математическая формулировка задачи

Для построених квадрата достаточно знать размер любой из его сторон, AB или BC или CD или DA, приведенных на рисунке 1.1.

Рисунок 1.1 Изображение квадрата

2. Описание программы

2.1 Структурная схема программы (связи модулей)

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

Рисунок 2.1 Схема связи модулей программы

2.2 Список модулей из которых состоит программа Project1.dpr - модуль проекта

Unit1.pas - модуль содержащий описание класса главной формы программы, и описание методов работы формы.

Unit2.pas - модуль заставки, появляющейся при запуске программного обеспечения.

Square.pas - модуль созданного класса с закрытыми полями, и методами для работы с данным классом.

About.dll- динамически подключаемая библиотека, содержащая форму окна «О программе», вызываемой из главного окна программы.

InterfaceSquare.pas - модуль интерфейса, содержащего прототипы функций описанные в com-объекте для вызова его методов.

2.3 В программе реализованы следующие классы

Класс TForm1 - от родительского класса TForm, содержит необходимые поля и методы для работы главной формы программы.

Основные поля класса:

MainMenu1 - главное меню.

ToolBar1 - панель кнопок.

ScrollBar1- элемент управления в виде ползунка.

CheckBox1-независимый переключатель.

Основные методы класса:

procedure NClick(Sender: TObject) - обработка нажатий на пункты меню.

procedure ToolButtonClick(Sender: TObject) - обработка нажатий на кнопки на панели.

procedure FormCreate(Sender: TObject) -задание начальных параметров.

procedure ShowHint(Sender: TObject) - обработка показываний контекстной помощи (подсказки).

procedure SetDCPixelFormat (hdc : HDC) -установка формата пикселей.

procedure Timer1Timer(Sender: TObject)-выполнение заданных опций по таймеру.

Класс TForm2 - от родительского класса TForm, является окном заставки показываемой перед запуском основной формы программы.

Основные поля класса:

Image1 - рисунок заставки.

Timer1 - таймер с отсчетом времени для показа заставки.

Методы класса:

procedure Timer1Timer(Sender: TObject) - метод отсчет таймера, по завершению которого форма (заставка) закрывается

procedure FormKeyPress(Sender: TObject; var Key: Char) - обработка нажатия клавиш на клавиатуре, при нажатии клавиши заставка закрывается.

procedure Image1Click (Sender: TObject) - по нажатию на Image1(на форму) заставка закрывается.

Класс TForm4 - от родительского класса TForm, содержит поле для ввода размеров фигуры.

Основные поля класса:

Label1- текстовое поле со статической информацией.

Edit1- поле для ввода информации в программу.

procedure Button1Click(Sender: TObject) - сохраняет введенное значение для фигуры.

2.4 Описание разработанного класса

Класс TSquare - разработанный класс для установки необходимых полей и графического отображения квадрата.

Поля класса:

Acolor1:TСolor - переменная для установки цвета формы

Acolor2:TСolor - переменная для установки цвета квадрата

Методы класса:

procedure Paint - рисование квадрата.

procedure Ssize(siize:integer) - преобразование размера квадрата подходящего для OpenGL.

procedure SetColor1(colorr1:TColor) - установка цвета формы.

procedure SetColor2(colorr2:TColor) - установка цвета квадрата.

procedure SetFillorLine(FillorLine:boolean) - установка отображения квадрата(целый квадрат или контур).

function GetColor1:TСolor - получение цвета формы.

function GetColor2:TСolor - получение цвета квадрата.

property color1:TColor read GetColor1 write SetColor1 - свойство для цвета формы.

property color2:TColor read GetColor2 write SetColor2 - свойство для цвета квадрата.

В программе реализована одна динамическая библиотека About.dll, в ней содержится окно «О программе». Библиотека имеет одну процедуру, которая доступна для использования из библиотеки.

procedure ShowAbout(AOwner:TComponent) - процедура отображения окна «О программе».

delphi программа модуль

2.5 Описание реализации технологии COM

В соответствии с требованиями на разработку данной курсовой работы была также реализована возможность экспорта методов созданного класса с помощью технологии COM. Для этого был создан сервер в виде DLL - программный модуль Server.pas. Этот сервер позволяет создать COM-объект, описание класса которого находится в модуле ClassSquare.pas. Данный класс полностью соответствует приведенному выше классу TSquare. Непосредственный доступ к открытым элементам COM-класса осуществляется с помощью интерфейса ISquare, описанного в модуле InterfaceSquare.pas.

library Server;

uses

ComServ,

ClassSquare in 'ClassSquare.pas',

InterfaceSquare in 'InterfaceSquare.pas',

Server_TLB in 'Server_TLB.pas';

exports

DllGetClassObject,

DllCanUnloadNow,

DllRegisterServer,

DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin

end.

3. Руководство пользователя

Работа программы начинается с запуска приложения Project1.exe. Пользователю сперва показывается заставка программы, показанная на рисунке 3.1.

Рисунок 3.1 Заставка программы

После чего появляется главная форма программы.(См. Рисунок 3.2)

Рисунок 3.2 Главное окно программы

Данное окно состоит из следующих частей:

· Главного меню;

· Панели кнопок;

· Области вывода графического изображения;

Пункты главного меню показаны на рисунке 3.3:

Рисунок 3.3 Главное меню

В свою очередь пункты главного меню содержат ряд подпунктов, приведенных на рисунках 3.4,3.5:

Рисунок 3.4 Подпункт меню `Опции'

Рисунок 3.5 Подпункты меню `Настройки'

При выборе пункта «Выход» происходит завершение работы приложения.

Пункт меню «Отправка в Word» отправляет в MS Word заданные параметры.

Пункт меню «Отправка в Excel» отправляет в MS Excel заданные параметры.

При выборе пункта “Презентация программы” будет запущена презентация сделанная в среде MS PowerPoint(см. рисунок 3.6):

Рисунок 3.6 Презентация

Чтобы выполнить поцедуры формирования и отображения квадрата необходимо нажать на кнопку'Нарисовать'(см. рисунок 3.7).Для вращения квадрата требуется нажать на кнопку'Вращение вкл\выкл'.Ползунок расположенный рядом с кнопкой 'Вращение вкл\выкл' позволяет корректировать скорость вращения. Переключатель `Контур квадрата' позволяет отображать квадрат полностью или только его контур.

Рисунок 3.7 Рисование квадрата

Одним из пунктов является `Размер фигуры', который предназначен для вызова формы ввода стороны квадрата, как показано на рисунке 3.8.

Для подтверждения ввода необходимо нажать кнопку `OK'.

Рисунок 3.8 Форма размера квадрата

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

Рисунок 3.9 Палитра цветов

При нажатии правой кнопки мы можно указать тип обьекта (классический или COM), который будет создаваться для отображения квадрата (рис 3.10).

Рисунок 3.10 Переключатель com

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

Рисунок 3.11 Форма `О программе'

При выборе пункта меню `Помощь' происходит вызов окна помощи, содержащим сведения о работе с программой,приведенном на рисунке 3.12.

Рисунок 3.12 Help файл

4. Методика испытаний

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

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

Для использования COM-сервера, он должен быть предварительно зарегистрирован в системе. Тестовые примеры выполнялись в среде операционной системы Windows 7 при разрешении экрана 1600*900. Для работы с программой необходимо также наличие клавиатуры и манипулятора типа «мышь».

При вводе некорректных данных в окно где задается размер квадрата мы получим предупреждающее сообщение (см. рисунок 4.1).

Рисунок 4.1 Предупреждающее сообщение

Произведем также испытание с использованием разработанного COM-объекта,смотрите рисунок 4.2.

Рисунок 4.2 Использование com

Таким образом, проведенное тестирование программы не выявило сбойных ситуаций и некорректностей в ее работе. Следует считать, что в целом программа протестирована, отвечает поставленным требованиям и вполне работоспособна.

Заключение

В ходе выполнения курсовой работы

· были закреплены знания по курсу «Разработка приложений в визуальных средах»;

· приобретен опыт при разработке объектно-ориентированных программ;

· изучены принципы создания динамических библиотек;

· изучены и реализованы способы создания клиент-серверных приложений на базе COM-технологий;

· освоены методы передачи данных между приложениями;

· изучены возможности создания справочной системой высокой степени сложности и различных форматов.

При разработке программы использовался модульный принцип программирования. Такая структура программы позволяет в дальнейшем модифицировать отдельные её части без нарушения работоспособности и потери функциональности приложения.

Список использованной литературы

1. Краснов М.В. OpenGL графика в проектах Delphi. -СПб.: БХВ-Петербург, 2002.

2. Конспекты по курсу «Разработка приложений в визуальных средах»

3. Л. Аммерал Программирование графики на СИ. Пер.с англ.-М.:"Сол Систем", 1992.-221с.

Приложение А

Листинг программных модулей

Project1.dpr - файл проекта.

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Square in 'Square.pas',

Unit4 in 'Unit4.pas' {Form4};

{$R *.RES}

begin

Application.Initialize;

Form2 := TForm2.Create(Application);

Form2.Show;

Form2.Update;

while Form2.Timer1.Enabled do

Application.ProcessMessages;

Form2.Hide;

Form2.Free;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm4, Form4);

Application.Run;

end.

Unit1.pas - главная форма программы.

unit Unit1;

interface

uses

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

Dialogs, Menus,OpenGL, StdCtrls, ExtCtrls, ComCtrls, ToolWin,WordXP,ComObj,

Buttons,Clipbrd,IniFiles,ShellAPI;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

Timer1: TTimer;

ColorDialog1: TColorDialog;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N9: TMenuItem;

Word1: TMenuItem;

Exel1: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

PopupMenu1: TPopupMenu;

COM1: TMenuItem;

ToolButton3: TToolButton;

CheckBox1: TCheckBox;

ScrollBar1: TScrollBar;

N10: TMenuItem;

procedure FormDestroy(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure Word1Click(Sender: TObject);

procedure Exel1Click(Sender: TObject);

procedure COM1Click(Sender: TObject);

procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;

WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

procedure ScrollBar1Change(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N10Click(Sender: TObject);

private

hrc:HGLRC;

{ Private declarations }

public

IniFile: TIniFile;

{ Public declarations }

end;

var

Form1: TForm1;

color1,color2:Tcolor;//переменные для установки

flagin,flagout:boolean;//флаги для приближения и отдаления

rot:integer;//переменная для вращения

implementation

uses Square,Unit4,InterfaceSquare;

{$R *.dfm}

procedure SetDCPixelFormat (hdc : HDC);//установка формата пикселей

var

pfd : TPixelFormatDescriptor;

nPixelFormat : Integer;

begin

FillChar (pfd, SizeOf (pfd), 0);

pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;

nPixelFormat := ChoosePixelFormat (hdc, @pfd);

SetPixelFormat (hdc, nPixelFormat, @pfd);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

wglDeleteContext(hrc);//уничтожение контекста при выходе из программы

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

SetDCPixelFormat(Canvas.Handle);//установка холста

hrc := wglCreateContext(Canvas.Handle);//установка контекста

color1:=RGB(0,255,255);//цвет формы

color2:=RGB(0,255,0);//цвет квадрата

flagin:=false;

flagout:=false;

rot:=0;

IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'MyIniFile.ini');//создание ini файла

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);//запись в ini при закрытии программы

begin

if Form4.Edit1.Text<>'' then

IniFile.WriteInteger(`Размер квадрата','Сторона',StrToInt(Form4.Edit1.Text));

IniFile.WriteDate('Последний запуск программы','Дата',Date);

IniFile.WriteTime('Последний запуск программы','Время',Time);

end;

procedure TForm1.FormShow(Sender: TObject);//считывание из ini файла при запуске программы

var Square:TSquare;

begin

Square:=TSquare.Create();

Form4.Edit1.Text:=IntToStr(IniFile.ReadInteger('Размер квадрата','Сторона',3));

Square.Ssize(StrToInt(Form4.Edit1.Text));

end;

procedure TForm1.Timer1Timer(Sender: TObject);//нажатие программным образом по таймеру на кнопку рисования квадрата

begin

ToolButton1Click(Sender);

end;

procedure TForm1.ScrollBar1Change(Sender: TObject);//изменение частоты таймера по ScroolBar

begin

Timer1.Interval:=1000-ScrollBar1.Position;

end;

procedure TForm1.ToolButton1Click(Sender: TObject);//рисование квадрата

var

i:integer;

Square:TSquare;//класс

ComSquare:ISquare;//com

begin

wglMakeCurrent(Canvas.Handle, hrc);

glViewPort (0, 0, Form1.ClientWidth, Form1.ClientHeight);// область вывода

if not(COM1.Checked) then//если не включен com создаем объект класса

begin

Square:=TSquare.Create();

Square.SetFillorLine(CheckBox1.Checked);

Square.SetColor1(color1);

Square.SetColor2(color2);

if Timer1.Enabled then//проверка на таймер

begin

glRotatef (5,1,1,1);//Поворот

Square.Paint;

rot:=rot+1;

end;

if not(Timer1.Enabled) then

begin

if rot<>0 then//поворот в исходную позицию

begin

for i:=0 to rot-1 do

glRotatef (-5,1,1,1);

end;

if flagin then//если флаг установлен в true то приближаем квадрат

begin

glScalef (1.1,1.1,1.0);

flagin:=false;

end;

if flagout then// если флаг установлен в true то отдаляем квадрат

begin

glScalef (0.91,0.91,1.0);

flagout:=false;

end;

Square.Paint;//вызов процедуры рисования из класса

rot:=0;

end;

end

else//если включен com создаем объект через обращение к фабрике

begin

ComSquare:=CreateComObject(Class_Square) as ISquare;

ComSquare.SetFillorLine(CheckBox1.Checked);

ComSquare.SetColor1(color1);

ComSquare.SetColor2(color2);

ComSquare.Ssize(StrToInt(Form4.Edit1.Text));

if Timer1.Enabled then//проверка на таймер

begin

glRotatef (5,1,1,1);

ComSquare.Paint;

rot:=rot+1;

end;

if not(Timer1.Enabled) then

begin

for i:=0 to rot-1 do

glRotatef (-5,1,1,1);

if flagin then

begin

glScalef (1.1,1.1,1.0);

flagin:=false;

end;

if flagout then

begin

glScalef (0.91,0.91,1.0);

flagout:=false;

end;

ComSquare.Paint;

rot:=0;

end;

end;

SwapBuffers(Canvas.Handle); // содержимое буфера на экран

wglMakeCurrent(0, 0);

ToolButton2.Enabled:=true;//разрешаем запуск вращения

end;

procedure TForm1.ToolButton2Click(Sender: TObject);

begin

if Timer1.Enabled then

Timer1.Enabled:=false

else

Timer1.Enabled:=true;

end;

procedure TForm1.N3Click(Sender: TObject);//установка цвета формы

begin

if (ColorDialog1.Execute) then

begin

color1:=ColorDialog1.Color;

end;

end;

procedure TForm1.N4Click(Sender: TObject);// установка цвета квадрата

begin

if (ColorDialog1.Execute) then

begin

color2:=ColorDialog1.Color;

end;

end;

procedure TForm1.N5Click(Sender: TObject);//открываем форму для ввода стороны квадрата

begin

Form4.ShowModal;

end;

procedure TForm1.N6Click(Sender: TObject);

Type

TProc = procedure(AOwner:TComponent);//Процедурный тип для вызова процедуры из DLL

var

HLib : THandle; //Дескриптор библиотеки

ShowAbout : TProc; //Переменная для вызова функции из DLL

begin

HLib:=LoadLibrary('About.dll');//Получить значение дескриптора загруженной библиотеки

if HLib = 0 then

begin

ShowMessage(`Библиотека не найдена' : About.dll');

exit;

end;

@ShowAbout:= GetProcAddress(HLib, 'ShowAbout');//Получить адрес вызываемой функции

ShowAbout(Application);//Вызов функции, показывающей форму About

FreeLibrary(HLib); //Выгрузка библиотеки

end;

procedure TForm1.N8Click(Sender: TObject);//выход из программы

begin

close;

end;

procedure TForm1.Word1Click(Sender: TObject);//отправка данных в Word

var

wordappl : TWordApplication; //WordApplication

worddoc : TWordDocument; //WordDocument

BitMap:TBitmap;

begin

wordappl:= TWordApplication.Create(Form1);//Создать com-объект

wordappl.Connect;//Подключиться в серверу Word

wordappl.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);//Добавить новый документ

worddoc:= TWordDocument.Create(Form1);

worddoc.ConnectTo(wordappl.ActiveDocument);

wordappl.Options.CheckSpellingAsYouType:=False;

wordappl.Options.CheckGrammarAsYouType:=False;

BitMap:=TBitmap.Create;

Bitmap.Width:=ClientWidth;

Bitmap.Height:=23;

Bitmap.Canvas.CopyRect(ClientRect,Canvas,ClientRect);

ClipBoard.Assign(Bitmap);

worddoc.Range.Paste;

worddoc.Range.InsertBefore('Описание панели рисования и вращения фигуры:'+#13);

worddoc.Range.InsertAfter(#13+'С помощью кнопки <Нарисовать> мы можем нарисовать квадрат'+#13);

worddoc.Range.InsertAfter('При помощи кнопки <Вращение вкл\выкл> запускается вращение фигуры'+#13);

worddoc.Range.InsertAfter('Ползунок отвечает за скорость вращения'+#13);

worddoc.Range.InsertAfter('Переключатель <Контур квадрата> позволяет рисовать только контур'+#13);

Bitmap.Free;

wordappl.Visible:= true;//Показать Word

end;

procedure TForm1.Exel1Click(Sender: TObject);//отправка данных в Excel

var

Excel : variant;

WorkBook : variant; //Рабочая книга

i:real;

begin

Excel:=CreateOleObject('Excel.Application');//Создать com-объект

Excel.Application.EnableEvents:= false;

WorkBook:= Excel.WorkBooks.Add;//Добавить рабочую книгу

WorkBook.WorkSheets[1].Columns[1].ColumnWidth:= 24;

WorkBook.WorkSheets[1].Columns[2].ColumnWidth:= 23;

WorkBook.WorkSheets[1].Columns[3].ColumnWidth:= 14;

WorkBook.WorkSheets[1].Columns[4].ColumnWidth:= 18;

WorkBook.WorkSheets[1].Cells[1,1]:= 'Информация о квадрате:';

i:=StrToFloat(Form4.Edit1.Text)*1.4;

WorkBook.WorkSheets[1].Cells[2,1]:= 'Размер фигуры составляет примерно';

WorkBook.WorkSheets[1].Cells[3,1]:= FloatToStr(i)+'см';

WorkBook.WorkSheets[1].Cells[2,2]:= 'Квадрат вращается в осях';

WorkBook.WorkSheets[1].Cells[3,2]:= 'X,Y,Z';

WorkBook.WorkSheets[1].Cells[2,3]:= 'Угол поворота';

WorkBook.WorkSheets[1].Cells[3,3]:= '5 градусов';

WorkBook.WorkSheets[1].Cells[2,4]:= 'Скорость вращения';

WorkBook.WorkSheets[1].Cells[3,4]:= IntToStr(Timer1.Interval)+' миллисекунд';

Excel.Visible:=true;

end;

procedure TForm1.COM1Click(Sender: TObject);//переключатель com

begin

if COM1.Checked then

COM1.Checked:=false

else

COM1.Checked:=true;

end;

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TshiftState;

WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

begin

if (Timer1.Enabled) or (not(ToolButton2.Enabled)) then exit;

if WheelDelta>0 then

begin

flagin:=true;

ToolButton1.Click;

end

else

begin

flagout:=true;

ToolButton1.Click;

end;

end;

procedure TForm1.N1Click(Sender: TObject);//открываем help файл

begin

ShellExecute(Handle, 'open', 'Help.chm',nil, nil, SW_SHOW);

end;

procedure TForm1.N10Click(Sender: TObject);//открываем презентацию

begin

{ShellApi.}ShellExecute(Handle, 'open', ' Белорусский Национальный Технический Университет.ppsx',nil, nil, SW_SHOW);

end;

end.

Unit2.pas модуль заставки

unit Unit2;

interface

uses

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

Dialogs, ExtCtrls, jpeg;

type

TForm2 = class(TForm)

Timer1: TTimer;

Image1: TImage;

procedure Timer1Timer(Sender: TObject);

procedure FormKeyPress(Sender: TObject; var Key: Char);

procedure Image1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled := false;

end;

procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);

begin

Timer1.Enabled := false;

end;

procedure TForm2.Image1Click(Sender: TObject);

begin

Timer1.Enabled := false;

end;

end.

Square.pas созданный класс

unit Square;

interface

Uses OpenGL,Graphics,Windows;

type

TSquare = class

private

Acolor1,Acolor2:TColor; //переменные для установки цвета

public

procedure Paint; //рисование квадрата

procedure Ssize(siize:integer);//установить размер квадрата

procedure SetColor1(colorr1:TColor); //установить цвет фона

procedure SetColor2(colorr2:TColor); // установить цвет квадрата

procedure SetFillorLine(FillorLine:boolean);//установить как будет рисоваться квадрат

function GetColor1:TColor; //получить цвет фона

function GetColor2:TColor; // получить цвет квадрата

property color1:TColor read GetColor1 write SetColor1;

property color2:TColor read GetColor2 write SetColor2;

end;

var

sz:real;

implementation

procedure TSquare.SetColor1(colorr1:TColor);

begin

Acolor1:=colorr1;

end;

procedure TSquare.SetColor2(colorr2:TColor);

begin

Acolor2:=colorr2;

end;

procedure TSquare.SetFillorLine(FillorLine:boolean);

begin

if FillorLine then

begin

glLineWidth (3);

glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);

end

else

glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

end;

function TSquare.GetColor1:TColor;

begin

result:=Acolor1;

end;

function TSquare.GetColor2:TColor;

begin

result:=Acolor2;

end;

procedure TSquare.Paint;

begin

glClearColor (GetRValue(color1)/256, GetGValue(color1)/256, GetBValue(color1)/256, 1.0); // цвет фона

glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета

glColor3f (GetRValue(color2)/256, GetGValue(color2)/256, GetBValue(color2)/256); // текущий цвет квадрата

if sz=0 then

sz:=0.3;

glBegin(GL_QUADS);

glVertex2f(-sz,sz); // Слева вверху

glVertex2f( sz,sz); // Справа вверху

glVertex2f( sz,-sz); // Справа внизу

glVertex2f(-sz,-sz); // Слева внизу

glEnd();

end;

procedure TSquare.Ssize(siize: integer);

begin

sz:=siize/10;

end;

end.

Unit4.pas модуль формы изменения размера

unit Unit4;

interface

uses

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

Dialogs, StdCtrls,ComObj;

type

TForm4 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

Uses Square,Unit1,InterfaceSquare;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var

square:TSquare;

ComSquare:ISquare;

sz:integer;

begin

if ((Edit1.Text='') or (StrToInt(Edit1.Text)>10) or (StrToInt(Edit1.Text)<1)) then

begin

ShowMessage('Введите корректные данные');

Edit1.Text:='3';

exit;

end;

sz:=(StrToInt(Edit1.Text));

square:=TSquare.Create();

square.ssize(sz);

ComSquare:=CreateComObject(Class_Square) as ISquare;

ComSquare.Ssize(sz);

Form1.ToolButton1.Click;

close;

end;

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#8]) then key:=#27

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Математическая формулировка задачи, принципиальная схема гидравлического демпфера. Структурная схема программы связи модулей, реализованной на языке высокого уровня Borland Delphi 7.0. Ее описание, руководство пользователя, особенности тестирования.

    курсовая работа [140,0 K], добавлен 29.05.2013

  • Анализ временных рядов. Разработка программы для среды визуального проектирования Borland Delphi 7.0. Математическая формулировка задачи. Структурная схема программы. Описание реализации технологии COM, динамических библиотек, возможностей программы.

    курсовая работа [4,3 M], добавлен 14.11.2010

  • Средства Delphi для разработки Windows приложений. Математическая формулировка задачи, описание программы вычисления определенного интеграла по формуле левых прямоугольников. Руководство пользователя, методика испытаний продукта. Листинг программы.

    курсовая работа [178,1 K], добавлен 14.11.2010

  • Среда Borland Delphi и ее графические средства для построения фрактальных множеств. Разработка программы для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.

    курсовая работа [1,3 M], добавлен 29.07.2013

  • Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.

    курсовая работа [1,6 M], добавлен 29.05.2013

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

    методичка [98,1 K], добавлен 19.06.2011

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

    курсовая работа [1,8 M], добавлен 26.05.2010

  • Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.

    дипломная работа [3,6 M], добавлен 13.07.2011

  • Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.

    курсовая работа [27,9 K], добавлен 26.07.2014

  • Порядок разработки игровой программы, создаваемой в среде Delphi в процессе проектирования приложения, основанной на модульном принципе. Структура программы: объявление списка используемых модулей и несколько операторов, запускающих данное приложение.

    курсовая работа [384,2 K], добавлен 03.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.