Разработка приложения формирования и отображения квадратов
Понятие пакета "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.2010Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.
курсовая работа [27,9 K], добавлен 26.07.2014Порядок разработки игровой программы, создаваемой в среде Delphi в процессе проектирования приложения, основанной на модульном принципе. Структура программы: объявление списка используемых модулей и несколько операторов, запускающих данное приложение.
курсовая работа [384,2 K], добавлен 03.01.2011