Средства объектно-ориентированного программирования в Delphi

Наличие высокопроизводительного компилятора в машинный код и масштабируемых средств для построения баз данных как одни из преимуществ среды программирования Delphi. Характеристика особенностей объектно-ориентированной модели программных компонент.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 03.03.2018
Размер файла 637,8 K

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

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

Текст, который Вы видите на поверхности кнопки - это содержимое свойства Caption, свойство Name служит для внутренних ссылок, Вы будете использовать его при написании кода программы. Если Вы откроете сейчас окно Редактора, то увидите следующий фрагмент кода:

 TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Terminate: TButton;

private

{ Private declarations }

 public

{ Public declarations }

end;

В этом фрагменте кнопка TButton называется Terminate из-за того, что Вы присвоили это название свойству Name. Заметьте, что TMemo имеет имя, которое присваивается по умолчанию.

Перейдите на форму и дважды щелкните мышкой на объект TButton. Вы сразу попадете в окно Редактора, в котором увидите фрагмент кода вроде этого:

procedure TForm1.TerminateClick(Sender: TObject);
begin

end;

Данный код был создан автоматически и будет выполняться всякий раз, когда во время работы программы пользователь нажмет кнопку Terminate. Вдобавок, Вы можете видеть, что определение класса в начале файла теперь включает ссылку на метод TerminateClick:
 TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Terminate: TButton;

procedure TerminateClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

 end;
Изначально Вы смотрите на кнопку на форме. Вы делаете двойной щелчок на эту кнопку, и соответствующий фрагмент кода автоматически заносится в Редактор. Теперь самое время написать строчку кода. Это весьма простой код, состоящий из одного слова Close:
procedure TForm1.TerminateClick(Sender: TObject);

begin

Close;

Когда этот код исполняется, то главная форма (значит и все приложение) закрывается. Для проверки кода запустите программу и нажмите кнопку Terminate. Если все сделано правильно, программа закроется и Вы вернетесь в режим дизайна.

Прежде, чем перейти к следующему разделу, перейдите в Инспектор Объектов и измените значение свойства Name для кнопки на любое другое, например OK. Нажмите Enter для внесения изменений. Посмотрите в Редактор, Вы увидите, что код, написанный Вами изменился:

procedure TForm1.OkClick(Sender: TObject);

begin

Close;

end;

Заметьте, что аналогичные изменения произошли и в определении класса:

 TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Ok: TButton;

procedure OkClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

 end;
Тьюторы (интерактивные обучающие программы).

Delphi предоставляет тьютор, содержащий несколько тем и который можно запустить из пункта меню Help | Interactive Tutors. Тьютор запускается только если среда Delphi имеет все установки по умолчанию. Если конфигурация была изменена, то проще всего сохранить файл DELPHI.INI под другим именем и скопировать файл DELPHI.CBT в DELPHI.INI.

3. Управление проектом Delphi
Любой проект имеет, покрайней мере, шесть связанных с ним файлов. Три из них относятся к управлению проектом из среды и напрямую программистом не меняются. Вот эти файлы:
Главный файл проекта, изначально называется PROJECT1.DPR.
Первый модуль программы /unit/, который автоматически появляется в начале работы. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS.
Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде главной формы.
Файл PROJECT1.RES содержит иконку для проекта, создается автоматически.
Файл, который называется PROJECT1.OPT по умолчанию, является текстовым файлом для сохранения установок, связанных с данным проектом. Например, установленные Вами директивы компилятора сохраняются здесь.
Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства.
Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES, OPT и DSK.

После компиляции программы получаются файлы с расширениями:

DCU - скомпилированные модули.
EXE - исполняемый файл.
DSM - служебный файл для запуска программы в среде, весьма большой, его рекомендуется стирать при окончании работы.
~PA, ~DP - backup файлы Редактора.
Пункт меню “File”.
Если нужно сохранить проект, то необходимо выбирать пункт главного меню “File” (с помощью мышки или по клавише Alt+F). Пункт меню “File” выглядит следующим образом:

New Project

Open Project

Save Project

Save Project As

Close Project

---------------------

New Form

New Unit

New Component

Open File

Save File

Save File As

Close File

---------------------

Add File

Remove File

---------------------

Print

---------------------

Exit

---------------------

1 PREV1.DPR

2 PREV2.DPR

Здесь есть шесть секций, вот их назначение:
Первая секция позволяет возможность управлять проектом в целом.
Вторая секция дает контроль над формами, модулями и компонентами проекта.
Третья позволяет добавлять и удалять файлы из проекта.
Четвертая управляет печатью.
Пятая секция - выход из Delphi
Шестая секция предоставляет список ранее редактировавшихся проектов; Вы можете быстро открыть нужный. 
Как Вы увидите позже, большинство операций из пункта меню “File” можно выполнить с помощью Менеджера Проекта (Project Manager), который можно вызвать из пункта меню View. Некоторые операции доступны и через SpeedBar. Данная стратегия типична для Delphi: она предоставляет несколько путей для решения одной и той же задачи, Вы сами можете решить, какой из них более эффективен в данной ситуации.
Каждая строка пункта меню “File” объяснена в Справочнике. Выберите меню “File” и нажмите F1, появится экран справочника, как на рис.1.
Рис. 22. Delphi включает подсказку о том, как использовать пункт меню “File”

Большинство из пунктов первой секции очевидны. “New Project” начинает новый проект, “Open Project” открывает существующий проект и т.д.

Первые два пункта второй секции позволяют Вам создать новую форму или новый модуль. Выбирая “New Form”, Вы создаете новую форму и модуль, связанный с ней; выбирая “New Unit”, Вы создаете один модуль.

“New Component” вызывает диалог для построения заготовки нового визуального компонента. В результате создается модуль, который можно скомпилировать и включить в Палитру Компонент.

“Open File” открывает, при необходимости, любой модуль или просто текстовый файл. Если модуль описывает форму, то эта форма тоже появится на экране.

При создании нового модуля Delphi дает ему имя поумолчанию. Вы можете изменить это имя на что-нибудь более осмысленное (например, MAIN.PAS) с помощью пункта “Save File As“.[22] 

“Save File” сохраняет только редактируемый файл, но не весь проект.

“Close File” удаляет файл из окна Редактора.

Нужно обратить внимание: Вы должны регулярно сохранять проект через File | Save Project либо через нажатие Ctrl+S. 
Менеджер Проектов разделен на две части: верхняя - панель с управляющими кнопками: нижняя - список модулей, входящих в проект.

Рис. 23. Кнопки сверху используются для удаления и добавления модулей в проект

Вы можете использовать кнопки с плюсом и минусом для добавления и удаления файлов в проекте. Эти изменения влияют на файлы с исходным текстом, т.е. если добавить в проект модуль, то ссылка на него появится в файле с расширением DPR.

Краткое описание других кнопок:

Третья слева кнопка - просмотр текста модуля, на котором стоит курсор.

Четвертая - просмотр формы, если таковая имеется для данного модуля

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

Последняя - сохранение изменений на диске.

Обзор других пунктов меню.

Пункт меню “Edit”.

“Edit” содержит команды “Undo” и “Redo”, которые могут быть весьма полезны при работе в редакторе для устранения последствий при неправильных действии, например, если случайно удален нужный фрагмент текста.

Отметьте для себя, что Справочник (on-line help) объясняет как нужно использовать пункт меню Options | Environment для настройки команды “Undo”. Возможность ограничить возможное количество команд “Undo” может пригодиться, если Вы работаете на машине с ограниченными ресурсами.

Команды “Cut”, “Copy”, “Paste” и “Delete” - как и во всех остальных приложениях Windows, но их можно применять не только к тексту, но и к визуальным компонентам.

Пункт меню “Menu”

В “Search” есть команда “Find Error” (поиск ошибки), которая поможет отследить ошибку периода выполнения программы. Когда в сообщении об ошибке указан ее адрес, Вы можете выбрать пункт меню Search | Find Error и ввести этот адрес. Если это представится возможным, то среда переместит Вас в то место программы, где произошла ошибка.

Пункт меню “View”

Составляющие пункта меню “View”:

Project Manager (Менеджер Проекта).

Project Source - загружает главный файл проекта (DPR) в Редактор

Установка показывать или нет Object Inspector на экране.

Установка показывать или нет Alignment Palette. То же самое доступно из пункта меню Edit | Align.

Browser - вызов средства для просмотра иерархии объектов программы, поиска идентификатора в исходных текстах и т.п.

Watch, Breakpoint и Call Stack - связаны с процедурой отладки программы и будут обсуждаться позднее.

Component List - список компонент, альтернатива Палитре Компонент. Используется для поиска компонента по имени или при отсутствии мыши.

Window List - список окон, открытых в среде Delphi.

Toggle Form/Unit, Units, Forms - переключение между формой и соответствующим модулем, выбор модуля или формы из списка.

New Edit Window - открывает дополнительное окно Редактора. Полезно, если нужно, например, просмотреть две разные версии одного файла.

SpeedBar и Component Palette - установки, нужно ли их отображать.

Пункт меню “Compile”.

В пункте меню “Compile” проект можно скомпилировать (compile) или перестроить (build). Если выбрать Compile или Run, то Delphi перекомпилирует только те модули, которые изменились со времени последней компиляции. Build all, с другой стороны, перекомпилирует все модули, исходные тексты которых доступны. Команда Syntax Check только проверяет правильность кода программы, но не обновляет DCU файлы.

В самом низу - пункт Information, который выдает информацию о программе: размеры сегментов кода, данных и стека, размер локальной динамической памяти и количество скомпилированных строк.

Пункт меню “Run”.

Можно использовать “Run” для компиляции и запуска программы а также для указания параметров командной строки для передачи в программу. Здесь же имеются опции для режима отладки.

Пункт меню Options | Project.

“Options” наиболее сложная часть системного меню. Это центр управления, из которого вы можете изменять установки для проекта и всей рабочей среды Delphi. В “Options” имеются семь пунктов:

Project

Environment

Tools

Gallery

--

Open Library

Install Components

Rebuild Library

Первые четыре пункта вызывают диалоговые окна. Ниже приведено общее описание пункта меню “Options”:

Project - выбор установок, которые напрямую влияют на текущий проект, это могут быть, к примеру, директивы компилятора проверки стека (stack checking) или диапазона (range checking).
Environment - конфигурация самой среды программирования (IDE). Например, здесь можно изменить цвета, используемые в Редакторе.
Tools - позволяет добавить или удалить вызов внешних программ в пункт главного меню “Tools”. Например, если Вы часто пользуетесь каким-нибудь редактором или отладчиком, то здесь его вызов можно добавить в меню.
Gallery - позволяет определить специфические установки для Эксперта Форм и Эксперта Проектов и их “заготовок”. Эксперты и “заготовки” предоставляют путь для ускорения конструирования интерфейса программы.
Последние три пункта позволяют сконфигурировать Палитру Компонент.

Диалог из пункта Options | Project включает пять страниц:

На странице Forms перечислены все формы, включенные в проект; Вы можете указать, нужно ли автоматически создавать форму при старте программы или Вы ее создадите сами. 
На странице Application Вы определяете элементы программы, такие, как заголовок, файл помощи и иконка. 
Страница Compiler включает установки для генерации кода, управления обработкой ошибок времени выполнения, синтаксиса, отладки и др.
На странице Linker можно определить условия для процесса линковки приложения
Страница Directories/Conditionals - здесь указываются директории, специфичные для данного проекта. 

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

Все установки для проекта сохраняются в текстовом файле с расширением OPT и Вы можете вручную их исправить.
Страница Forms.
Рис. 24

На странице Forms можно выбрать главную форму проекта. Изменения, которые Вы сделаете, отобразятся в соответствующем файле DPR. Например, в нижеследующем проекте, Form1 является главной, поскольку появляется первой в главном блоке программы:

program Project1;

uses

Forms,

Unit1 in 'UNIT1.PAS' {Form1},

Unit2 in 'UNIT2.PAS' {Form2};

{$R *.RES}

begin

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

Если изменить код так, чтобы он читался:
begin

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

то теперь Form2 станет главной формой проекта.

Вы также можете использовать эту страницу для определения, будет ли данная форма создаваться автоматически при старте программы. Если форма создается не автоматически, а по ходу выполнения программы, то для этого следует использовать процедуру Create.

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

Страница Applications

На странице Applications, (см. рис. 25), вы можете задать заголовок (Title), файл помощи (Help file) и пиктограмму (Icon) для проекта.

Рис. 25. Страница общих установок для приложения

Страница Compiler.

Ранее уже отмечалось, что установки из пункта меню “Options | Project” сохраняются в соответствующем файле с расширением OPT. Давайте рассмотрим директивы компилятора на странице Compiler (рис. 26).

Рис. 26. Страница для определения директив компилятора

Следующая таблица показывает, как различные директивы отображаются в OPT файле, на странице Compiler и внутри кода программы:

Табл. 1

OPT File

Options Page

Editor Symbol

F

Force Far Calls

{$F+}

A

Word Align Date

{$A+}

U

Pentium-Safe FDIV

{$U+}

K

Smart Callbacks

{$K+}

W

Windows (3.0) Stack Frame

{$W+}

R

Range Checking

{$R+}

S

Stack Checking

{$S+}

I

IO Checking

{$I+}

Q

Overflow Checking

{$Q+}

V

Strict Var Strings

{$V+}

B

Complete Boolean Evaluation

{$B+}

X

Extended Syntax

{$X+}

T

Typed @ Operator

{$T+}

P

Open Parameters

{$P+}

D

Debug Information

{$D+}

L

Local Symbols

{$L+}

Y

Symbol Information

{$Y+}

N

Numeric Processing

{$N+}

Страница Linker

Теперь давайте перейдем к странице Linker, проиллюстрированной на рис. 27.

Рис. 27. Страница линковщика

Установки отладчика рассматриваются ниже. Если буфер линковщика расположен в памяти, то линковка происходит быстрее.

Размер стека (Stack Size) и локальной динамической памяти (Heap Size) весьма важны. Delphi устанавливает по умолчанию и Stack Size, и Heap Size в 8192 байт каждый. Вам может понадобиться изменить размер стека в программе, но обычно это не более 32Кб. В сумме эти два размера не должны превышать 64Кб, иначе будет выдаваться ошибка при компиляции программы.
Страница Directories/Conditionals.
Страница Directories/Conditionals, (рис. 28), дает возможность расширить число директорий, в которых компилятор и линковщик ищут DCU файлы.

Рис. 28. Страница Directories/Conditionals

В файле DELPHI.INI содержится еще один список директорий. Запомните, что в OPT файле - список директорий для конкретного проекта, а в файле DELPHI.INI - список относится к любому проекту.

Output directory - выходная директория, куда складываются EXE и DCU файлы, получающиеся при компиляции.

Search path - список директорий для поиска DCU файлов при линковке. Директории перечисляются через точку с запятой ;

Conditional defines - для опытного программиста и на первом этапе создания проекта не требуется. Для информации можно вызвать Справочник (on-line help).

Конфигурация среды программирования (IDE).

Пункт меню “Options | Environment” предоставляет Вам большой набор страниц и управляющих элементов, которые определяют внешний вид и работу IDE. Delphi позволяет сделать следующие важные настройки:

Определить, что из проекта будет сохраняться автоматически.

Можно менять цвета IDE.

Можно менять подсветку синтаксиса в Редакторе.

Можно изменить состав Палитры Компонент.

Указать “горячие клавиши” IDE.

Первая страница пункта меню “Options | Environment” показана на рис. 29.

Рис. 29. Страница Preferences

В группе “Desktop Contents” определяется, что будет сохраняться при выходе из Delphi. Если выбрать Desktop Only - это сохранит информацию о директориях и открытых окнах, если выбрать Desktop And Symbols - это сохранит то же самое плюс информацию для броузера (browser).

В группе “Autosave” указывается, что нужно сохранять при запуске программы. Если выбрана позиция Editor Files, то сохраняются все модифицированные файлы из Редактора при выполнении команд Run|Run, Run|Trace Into, Run|Step Over, Run|Run To Cursor или при выходе из Delphi. Если выбрана позиция Desktop - сохраняется рабочая среда при закрытии проекта или при выходе из Delphi. Если Вы позже откроете проект, то он будет иметь тот же вид, что и при его закрытии.

В группе “Form Designer” можно установить, показывать ли сетку (grid) на экране и выравнивать ли объекты по ней, и размер ячеек сетки.

В группе “Debugging”: опция Integrated Debugging - использовать ли встроенный отладчик; Step Program Block - отладчик остановится на первой строке модуля, в котором есть отладочная информация; Break On Exception - останавливать ли программу при возникновении исключительной ситуации; Minimize On Run - свертывать ли Delphi при запуске программы. После закрытия программы среда Delphi восстанавливается. Hide Designers On Run - прячет окна Дизайнера (Инспектор Объектов, формы) при запуске приложения.

Show Compiler Progress - показывать ли окно, в котором отражается процесс компиляции программы.

“Gallery” - указывает, в каких случаях нужно предоставлять “галерею” (коллекцию заготовок и экспертов).

Страницы Editor Options, Editor Display и Editor Colors позволяют Вам изменить цвета и “горячие” клавиши, используемые IDE. Страница Editor Display показана на рис. 30, а Editor Colors - на рис. 31.

Рис. 30. Страница Editor Display

Рис. 31. Страница Editor Colors

Существует несколько способов изменить назначение “горячих” клавиш, используемых Редактором. Например, многие пользователи привыкли, что по клавише F5 максимизируется окно Редактора. Для этого им надо использовать расположение клавиш, называемое “Classic” (Keystroke mapping : Classic). Всего есть четыре вида конфигурации клавиш:

“Default” - характерно для Microsoft. Если Вы новичок в Windows или уже привыкли к этому расположению клавиш, то это подойдет.

“Classic” - более известно ветеранам Borland C++ и Borland Pascal. Поддерживает многие комбинации клавиш WordStar и отладчик управляется старым добрым способом.

Остальные два вида - имитируют редакторы Epsilon и BRIEF. Подойдут, если вы с ними знакомы.

Точное описание назначения клавиш можно найти в Справочнике (в Help | Topic Search набрать “key mapping”).

Цвета IDE можно изменить на странице Editor Colors.

И, наконец, Editor Options (рис. 32).

Рис. 32. На странице Editor Options можно настроить тонкие детали работы Редактора

Многие из установок на данной странице не весьма важны для большинства пользователей, поэтому остановимся лишь на некоторых.

“Use syntax highlight” - выделять ли цветом синтаксические конструкции в Редакторе Исходного текста.

“Find text at cursor” - если включено, то при поиске (Ctrl+F) в качестве подстроки для поиска будет браться то слово, на котором стоит курсор.

Обо всех опциях можно подробнее узнать в Справочнике (F1).

Установки сохраняются в файле DELPHI.INI, который находится в директории Windows.

4. Обзор Палитры Компонентов

На первой странице Палитры Компонент размещены 14 объектов (рис. 33) определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно.

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

Рис. 33. Компоненты, расположенные на первой странице Палитры

Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению.

Курсор - не компонент, просто пиктограмма для быстрой отмены выбора какого-либо объекта.

TMainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню. TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.

TLabel служит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе объектов. Вы увидите, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.

TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в ClipBoard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и “родные” компоненты Delphi, где этот предел снят).

TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается весьма просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатием кнопки. Далее нужно заполнить заготовку кодом:

procedure TForm1.Button1Click(Sender: TObject);

begin

MessageDlg('Are you there?',mtConfirmation,mbYesNoCancel,0);

end;

TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно преимущественно состоит из CheckBox'ов.

TRadioButton позволяет выбрать только одну опцию из нескольких. Если Вы вновь откроете диалог Options | Project и выберете страницу Linker Options, то можете увидеть, что секции Map file и Link buffer file состоят из наборов RadioButton.

TListBox нужен для показа прокручиваемого списка. Классический пример ListBox'а в среде Windows - выбор файла из списка в пункте меню File | Open многих приложений. Названия файлов или директорий и находятся в ListBox'е.

TComboBox во многом напоминает ListBox, за исключением того, что позволяет вводить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен спадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

TScrollbar - полоса прокрутки появляется автоматически в объектах редактирования, ListBox'ах при необходимости прокрутки текста для просмотра.

TGroupBox используется для визуальных целей и указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

TRadioGroup используется аналогично TGroupBox, для группировки объектов TRadioButton.

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

Это полный список объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.
Страница Additional.
На странице Standard представлены управляющие элементы, появившиеся в Windows 3.0. На странице Additional размещены объекты, позволяющие создать более красивый пользовательский интерфейс программы.
Рис. 34

Список компонент:

TBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку (glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и др.), при выборе которых кнопка принимает соответствующий вид. Кроме того, нажатие кнопки на модальном окне (Form2.ShowModal) приводит к закрытию окна с соответствующим модальным результатом (Form2.ModalResult).

TSpeedButton - кнопка для создания панели быстрого доступа к командам (SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi. Обычно на данную кнопку помещается только картинка (glyph).

TTabSet - горизонтальные закладки. Обычно используются вместе с TNoteBook для создания многостраничных окон. Название страниц можно задать в свойстве Tabs, но проще это сделать в программе при создании формы (OnCreate):

TabSet1.Tabs := Notebook1.Pages;

Для того, чтобы при выборе закладки страницы перелистывались, нужно в обработчике события OnClick для TTabSet написать:

Notebook1.PageIndex := TabSet1.TabIndex;

TNoteBook - используется для создания многостраничного диалога, на каждой странице располагается свой набор объектов. Используется совместно с TTabSet.

TTabbedNotebook - многостраничный диалог со встроенными закладками, в данном случае - закладки сверху.

TMaskEdit - аналог TEdit, но с возможностью форматированного ввода. Формат определяется в свойстве EditMask. В редакторе свойств для EditMask есть заготовки некоторых форматов: даты, валюты и т.п. Специальные символы для маски можно посмотреть в Справочнике.

TOutline - используется для представления иерархических отношений связанных данных. Например - дерево директорий.

TStringGrid - служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell.

TDrawGrid - служит для представления данных любого типа в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство CellRect.

TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

TShape - служит для отображения простейших графических объектов на форме: окружность, квадрат и т.п.

TBevel - элемент для рельефного оформления интерфейса.

THeader - элемент оформления для создания заголовков с изменяемыми размерами для таблиц.

TScrollBox - позволяет создать на форме прокручиваемую область с размерами большими, нежели экран. На этой области можно разместить свои объекты.

Страница Dialogs.
Рис. 35
На странице Dialogs представлены компоненты для вызова стандартных диалогов Windows. Внешний вид диалогов зависит от используемой версии Windows. Объекты, представленные на данной странице, невидимы во время выполнения и вызов диалогов происходит программно, например:
if OpenDialog1.Execute then Image1.Picture.LoadFromFile(OpenDialog1.FileName);
Диалоги Windows в порядке появления на странице Dialogs:
OpenDialog - выбрать файл
SaveDialog; сохранить файлFontDialog; настроить шрифтColorDialog; выбор цветаPrintDialog; печатьPrinterSetupDialog; настройка принтераFindDialog; поиск строкиReplaceDialog; поиск с заменой.
Страница System

Рис. 36

Страница представляет набор компонент для доступа к некоторым системным сервисам типа таймер, DDE, OLE и т.п.

TTimer - таймер, событие OnTimer периодически вызывается через промежуток времени, указанный в свойстве Interval. Период времени может составлять от 1 до 65535 мс.

TPaintBox - место для рисования. В обработчики событий, связанных с мышкой, передаются относительные координаты мышки в TPaintBox, а не абсолютные в форме.

TFileListBox - специализированный ListBox, в котором отображаются файлы из указанной директории (свойство Directory). На названия файлов можно наложить маску, для чего служит свойство Mask. Кроме того, в свойстве FileEdit можно указать объект TEdit для редактирования маски.

TDirectoryListBox - специализированный ListBox, в котором отображается структура директорий текущего диска. В свойстве FileList можно указать TFileListBox, который будет автоматически отслеживать переход в другую директорию.

TDriveComboBox - специализированный ComboBox для выбора текущего диска. Имеет свойство DirList, в котором можно указать TDirectoryListBox, который будет отслеживать переход на другой диск.

TFilterComboBox - специализированный ComboBox для выбора маски имени файлов. Список масок определяется в свойстве Filter. В свойстве FileList указывается TFileListBox, на который устанавливается маска.

С помощью последних четырех компонент (TFileListBox, TDirectoryListBox, TDriveComboBox, TFilterComboBox) можно построить свой собственный диалог выбора файла, причем для этого не потребуется написать ни одной строчки кода.

TMediaPlayer - служит для управления мультимедийными устройствами (типа CD-ROM, MIDI и т.п.). Выполнен в виде панели управления с кнопками Play, Stop, Record и др. Для воспроизведения может понадобиться как соответствующее оборудование, так и программное обеспечение. Подключение устройств и установка ПО производится в среде Windows. Например, для воспроизведения видео, записанного в формате AVI, в потребуется установить ПО MicroSoft Video (в Windows 3.0, 3.1, WFW 3.11).

TOLEContainer - контейнер, содержащий OLE объекты. Поддерживается OLE 2.02

TDDEClientConv,TDDEClientItem, TDDEServerConv, TDDEServerItem - 4 объекта для организации DDE. С их помощью можно построить приложение как DDE-сервер, так и DDE-клиент. Подробнее - на следующих уроках.

Страница VBX

Рис. 37

Поскольку формат объектов из MicroSoft Visual Basic (VBX) является своего рода стандартом и существует большое количество библиотек таких объектов, то в Delphi была предусмотрена совместимость с этим форматом. VBX версии 1.0 можно включить в Палитру Компонент Delphi и использовать их как “родные” компоненты (в том числе, выбирать их в качестве предков и наследовать свойства и методы).

TBiSwitch - двухпозиционный переключатель.

TBiGauge - прогресс-индикатор.

TBiPict - аналог TImage.

TChartFX - деловая графика.

5. Рисование и закраска

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

В стандартную библиотеку визуальных компонент Delphi входят несколько объектов, с помощью которых можно придать своей программе совершенно оригинальный вид. Это - TImage (TDBImage), TShape, TBevel.

TImage позволяет поместить графическое изображение в любое место на форме. Данный объект весьма прост в использовании - выберите его на странице Additional и поместите в нужное место формы. Собственно, картинку можно загрузить во время дизайна в редакторе свойства Picture (Инспектор Объектов). Картинка должна храниться в файле в формате BMP (bitmap), WMF (Windows Meta File) или ICO (icon). (TDBImage отображает картинку, хранящуюся в таблице в поле типа BLOB. При этом доступен только формат BMP.)

Как известно, форматов хранения изображений гораздо больше трех вышеназванных (например, наиболее известны PCX, GIF, TIFF, JPEG). Для включения в программу изображений в этих форматах нужно либо перевести их в формат BMP, либо найти библиотеки третьих фирм, в которых есть аналог TImage, “понимающий” данные форматы (есть как VBX объекты, так и “родные” объекты для Delphi).

При проектировании следует помнить, что изображение, помещенное на форму во время дизайна, включается в файл .DPR и затем прикомпилируется к EXE файлу. Поэтому такой EXE файл может получиться достаточно большой. Как альтернативу можно рассмотреть загрузку картинки во время выполнения программы, для этого у свойства Picture (которое является объектом со своим набором свойств и методов) есть специальный метод LoadFromFile. Это делается, например, так:

if OpenDialog1.Execute then

Image1.Picture.LoadFromFile(OpenDialog1.FileName);

Важными являются свойства объекта Center и Stretch - оба имеют булевский тип. Если Center установлено в True, то центр изображения будет совмещаться с центром объекта TImage. Если Stretch установлено в True, то изображение будет сжиматься или растягиваться таким образом, чтобы заполнить весь объект TImage.

TShape - простейшие графические объекты на форме типа круг, квадрат и т.п. Вид объекта указывается в свойстве Shape. Свойство Pen определяет цвет и вид границы объекта. Brush задает цвет и вид заполнения объекта. Эти свойства можно менять как во время дизайна, так и во время выполнения программы.

TBevel - объект для украшения программы, может принимать вид рамки или линии. Объект предоставляет меньше возможностей по сравнению с TPanel, но не занимает ресурсов. Внешний вид указывается с помощью свойств Shape и Style.

Свойство объектов Canvas.

У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты - TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas в свою очередь является объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). [50,51] Canvas обладает также рядом графических методов : Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты - картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого рисуете. Рассмотрим подробнее свойства и методы объекта Canvas.

Свойства Canvas :

Brush -кисть, является объектом со своим набором свойств:

Bitmap - картинка размером строго 8x8, используется для заполнения (заливки) области на экране.

Color - цвет заливки.

Style - предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap - какое свойство Вы определили последним, то и будет определять вид заливки.

Handle - данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API .

ClipRect - (только чтение) прямоугольник, на котором происходит графический вывод.

CopyMode - свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др.

Font - шрифт, которым выводится текст (метод TextOut).

Handle - данное свойство используется для прямых вызовов Windows API.

Pen - карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:

Color - цвет линии

Handle - для прямых вызовов Windows API

Mode - режим вывода: простая линия, с инвертированием, с выполнением исключающего или и др.

Style - стиль вывода: линия, пунктир и др.

Width - ширина линии в точках

PenPos - текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства.

Pixels - двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения

Методы Canvas:

Методы для рисования простейшей графики - Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей - кисть (Brush).

Методы для вывода картинок на канву - Draw и StretchDraw. В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).

Методы для вывода текста - TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.

Объект TPaintBox.

На странице System Палитры Компонент есть объект TPaintBox, который можно использовать для построения приложений типа графического редактора или, например, в качестве места построения графиков (если, конечно, у Вас нет для этого специальных компонент третьих фирм). Никаких ключевых свойств, кроме Canvas, TPaintBox не имеет, собственно, этот объект является просто канвой для рисования. Важно, что координаты указателя мыши, передаваемые в обработчики соответствующих событий (OnMouseMove и др.), являются относительными, т.е. это смещение мыши относительно левого верхнего угла объекта TPaintBox, а не относительно левого верхнего угла формы.

Примеры.

В первом примере (проект SHAPE.DPR, рис.1) показано, как во время выполнения программы можно изменять свойства объекта TShape. Изменение цвета объекта (событие OnChange для ColorGrid1):

procedure TForm1.ColorGrid1Change(Sender: TObject);

begin

Shape1.Brush.Color:=ColorGrid1.ForeGroundColor;

end;

Во втором примере показано, как осуществить доступ к отдельной точке на изображении (на канве). По нажатию кнопки “Fill” всем точкам изображения присваивается свой цвет:

procedure TForm1.Button1Click(Sender: TObject);

var

i, j : Longint;

begin

Button1.Enabled:=False;

with Canvas do

for i:=1 to Width do begin

Application.ProcessMessages;

for j:=1 to Height do

Pixels[i,j]:=i*j;

end;

Button1.Enabled:=True;

end;

В третьей программе приведен пример использования методов, выводящих изображение - Draw и StretchDraw:

Прорисовка изображений происходит в обработчике события OnPaint для формы:

procedure TForm1.FormPaint(Sender: TObject);

begin

with Canvas do begin

Draw(0,0, Image1.Picture.BitMap);

StretchDraw(Rect(250,0,350,50),Image1.Picture.BitMap)

end;

end;

6. Печать текстовая и графическая

Печать в текстовом режиме.

Если возникает необходимость напечатать на принтере документ в текстовом режиме, то это делается следующим образом. С принтером возможно работать, как с обычным текстовым файлом, за исключением того, что вместо процедуры AssignFile нужно вызывать процедуру AssignPrn. В примере на принтер выводится одна строка текста:

procedure TForm1.Button1Click(Sender: TObject);

var

To_Prn : TextFile;

begin

AssignPrn(To_Prn);

Rewrite(To_Prn);

Writeln(To_Prn, 'Printer in Text Mode');

CloseFile(To_Prn);

end;

Здесь необходимо пояснить, что по сравнению с BP 7.0, в Delphi изменены названия некоторых функций и переменных в модуле System :

AssignFile вместо Assign

CloseFile вместо Close

TextFile вместо Text

Иногда в программе требуется просто получить твердую копию экранной формы. В Delphi это делается более, чем просто - у объекта TForm есть метод Print, который и нужно вызвать в нужный момент.

Графическая печать (объект TPrinter).

И все же более интересно, как из программы, созданной в Delphi, можно вывести на печать графическую информацию. Для этого есть специальный объект Printer (класса TPrinter). Он становится доступен, если к программе подключить модуль Printers (т.е. добавить имя модуля в разделе uses). С помощью данного объекта печать на принтере графической информации становится не сложнее вывода этой информации на экран. Основным является то, что Printer предоставляет разработчику свойство Canvas ( работа с канвой описана в предыдущей лекции) и методы, выводящие содержание канвы на принтер. Рассмотрим подробнее свойства и методы объекта Printer.

Свойства Printer:

Aborted - тип булевский; показывает, прервал ли пользователь работу принтера методом Abort.

Canvas - канва, место для вывода графики; работа с Canvas описана в соответствующей лекции.

Fonts - список доступных шрифтов.

Handle - используется при прямых вызовах Windows API.

Orientation - ориентация страницы, вертикально или горизонтально.

PageWidth, PageHeight, PageNumber - соответственно ширина, высота и номер страницы.

Printers перечисляет все установленные в системе принтеры, а

PrinterIndex указывает, какой из них является текущим. Чтобы печатать на принтере по умолчанию, здесь должно быть значение -1.

Printing - тип булевский; показывает, начата ли печать (методом BeginDoc).

Title - заголовок для Print Manager и для заголовка перед выводом на сетевом принтере.

Методы Printer:

Abort - прерывает печать, начатую методом BeginDoc

BeginDoc - вызывается перед тем, как начать рисовать на канве.

EndDoc - вызывается, когда все необходимое уже нарисовано на канве, принтер начинает печатать именно после этого метода.

NewPage - переход на новую страницу.

Остальными методами объекта в обычных случаях пользоваться не нужно.

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

выполняется метод BeginDoc

на канве (Canvas) рисуем все, что нужно

при необходимости разместить информацию на нескольких листах вызываем метод NewPage.

посылаем нарисованное на принтер, выполняя метод EndDoc.

Заключение

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

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

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

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

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

Главные составные части среды программирования:

1. Дизайнер Форм (Form Designer).

2. Окно Редактора Исходного Текста (Editor Window).

3. Палитра Компонент (Component Palette).

4. Инспектор Объектов (Object Inspector).

5. Справочник (On-line help).

Инструментальные средства DELPHI:

Встроенный отладчик

Внешний отладчик (поставляется отдельно)

Компилятор командной строки.

WinSight.

WinSpector.

Любой проект имеет, по-крайней мере, шесть связанных с ним файлов. Три из них относятся к управлению проектом из среды и напрямую программистом не меняются. Вот эти файлы :

Главный файл проекта, изначально называется PROJECT1.DPR.

Первый модуль программы /unit/, который автоматически появляется в начале работы. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS.

Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде главной формы.

Файл PROJECT1.RES содержит иконку для проекта, создается автоматически.

Файл, который называется PROJECT1.OPT по умолчанию, является текстовым файлом для сохранения установок, связанных с данным проектом. Например, установленные Вами директивы компилятора сохраняются здесь.

Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства.

Литература

1. Архангельский А. Программирование в Delphi 7. - М.: ООО «Бином - Пресс», 2004. -1152с.

2. Брауде Э. Технология разработки программного обеспечения. Питер - 2004. - 325 с.

3. Бобров И.С. Delphi 7. Учебный курс. Москва. Санкт-Петербург, Нижний Новгород, Воронеж, Питер.- 2003.- 625

4. Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Бином · 1998.

5. Джон Влиссидес, Эрих Гамма, Ричард Хелм, Ральф Джонсон. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - Питер. 2003. - 256 с.

6. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование. - М.: Изд. МГТУ имени Н.Э. Баумана. 2003.- 320с.

7. Кьоу Дж., Джеанини М.Объектно-ориентированное программирование. Просто и понятно. ? М.: Питер, 2005. -403с.

8. Лесневский А.С. Объектно-ориентированное программирование для начинающих. - М.: Бином. Лаборатория знаний. 2005. - 382 с.

9. Синтес Антони. Освой самостоятельно объектно-ориентированное программирование за 21 день. Просто и понятно? М.: Вильямс. 2002. -284с.

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

...

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

  • История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.

    курсовая работа [970,5 K], добавлен 15.05.2014

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

    дипломная работа [1,8 M], добавлен 14.09.2011

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

    курсовая работа [40,8 K], добавлен 15.07.2009

  • Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.

    контрольная работа [60,1 K], добавлен 17.01.2011

  • Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.

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

  • Delphi как программный продукт с феноменальными характеристиками. Компилятор в машинный код. Объектно-ориентированная модель программных компонентов. Масштабируемые средства для построения баз данных. Программный код.

    контрольная работа [27,8 K], добавлен 30.07.2007

  • Исследование особенностей объектно-ориентированной среды программирования Borland Delphi. Описание процесса создания электронного пособия для изучения студентами и применения на уроках преподавателями. Характеристика технических и программных средств.

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

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

    реферат [21,0 K], добавлен 13.01.2015

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

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

  • Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.

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

  • Основные этапы развития языков программирования. Характеристика машинно-ориентированной, проблемно-ориентированной и процедурно-ориентированной систем программирования. Ознакомление с системами программирования Delphi, Visual Basic и Visual C++.

    курсовая работа [102,4 K], добавлен 21.07.2012

  • Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.

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

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

    курсовая работа [2,2 M], добавлен 20.09.2014

  • Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.

    контрольная работа [1,3 M], добавлен 19.06.2012

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

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

  • Разработка клиентского приложения для информационной системы "Работа торгового склада" с помощью языка объектно-ориентированного программирования Delphi 6 и технологии InterBase Express. Описание реляционной модели данных и этапы ее проектирования.

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

  • Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.

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

  • Рассмотрение теоретических аспектов создания баз данных с применением системы объектно-ориентированного программирования Delphi. Ознакомление с компонентами доступа. Разработка базы данных "Библиотека". Описание основ интерфейса созданной программы.

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

  • Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.

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

  • Описание метода сжатия информации на основе двоичных кодирующих деревьев Хаффмана. Среда разработки Delphi версии 7.0. Понятия объектно-ориентированного программирования. Программа, разработанная в Delphi. Реализация на Delphi метода кодирования Хаффмана.

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

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