Для дипломного проектирования

РАСЧЁТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К ДИПЛОМНОМУ ПРОЕКТУ

СТУДЕНТА IV КУРСА 46-П ГРУППЫ

 

Потемкина Михаила Отчество

Специальность 230105

ТЕМА ДИПЛОМНОГО ПРОЕКТА:

Разработка справочной системы «Стандартные функции Turbo Pascal»

Дипломник ___________________________________ Потемкин.М.

Руководитель

проекта _________________________________ Суркова М.В.

Консультант по

экономической части _________________________________ Потоцкая Е.А.

 

Рецензент __________________________________ Королёва Т.Б.

 

«Допустить дипломный проект к защите»

Председатель комиссии общепрофессиональных и специальных дисциплин по специальности 230105

_______________________________ Суркова М.В.

 

«____» ___________ 2013 г.

 

 

Министерство образования Тверской области

ГБОУ СПО «Осташковский техникум»

 

 

«УТВЕРЖДАЮ»

Зам.директора по УР

 

_________ Потоцкая Е.А.

 

 

Задание

для дипломного проектирования

Студенту 46-П группы Потемкину Михаилу Отчество

Специальность 230105

Тема дипломного проекта:

 

 

Разработка справочной системы «Стандартные функции Turbo Pascal»

 

 

Данные по проекту: Использование среды Delphi

Дата выдачи задания: 11.05.13 г.

Срок представления проекта: 21.06.13 г.

Председатель комиссии общепрофессиональных и специальных дисциплин по специальности 230105:

______________________________ Суркова М.В.

 

Руководитель проекта: ____________________________ Суркова М.В.


Содержание

ВВЕДЕНИЕ. 4

РАЗДЕЛ 1. СПЕЦИАЛЬНАЯ ЧАСТЬ. 6

1.1 Постановка задачи. 7

1.2Модель задачи...……………………………………………………………..8

1.3 Программное обеспечение. 8

1.4 Блок схема. 16

1.5 Листинг программы.. 17

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

1.7 Тестирование

1.8 Заключение……………………………………………………………….

РАЗДЕЛ 2. ОХРАНА ТРУДА.. 23

2.1. Требования безопасности перед началом работы на персональном компьютере. 23

2.2. Требования безопасности во время работы на персональном компьютере. 24

2.3. Требования безопасности после окончания работы на персональном компьютере. 25

РАЗДЕЛ 3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ. 23

 

3.1 Расчет трудоемкости разработки программы.. 26

3.2 Расчет себестоимости программы.. 31

3.2.1 Расчет расходных материалов. 33

3.2.2. Расчет заработной платы с начислениями………………………….35

3.2.3. Расчет расходов на электроэнергию.. 37

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

3.3. Расчет отпускной цены.. 44

3.4. Расчет показателей экономической эффективности программного продукта 45

Заключение. 47

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

 


ВВЕДЕНИЕ

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

Поэтому лучше абстрагироваться от данного уровня детализации и подняться чуть выше. И для себя конкретно я выбрал язык не assembler, а turbo Pascal, так как он предоставляет программисту более простые инструменты для создания по, и в то же время не очень сложен в обучении. Но, при использовании любого языка программирования нам приходиться иметь дело с различными видами операций. Это и вычисление каких то математических функций, и поиск подстроки в строке, и проверка числа на четность и т.д. Конечно, по сути эти действия можно создать с нуля, и при необходимости использовать. Но становиться понятно, что к примеру если нам надо три раза подсчитать синус какого либо числа, то для этого нам понадобиться только же раз продублировать код, реализующий данную возможность. Это не будет эффективно, поскольку занимает место в программе и к тому же сказывается на её быстродействии. Как от этого избавиться? И выход был найден! А заключается он в том, что были созданы специальные подпрограммы – процедуры и функции. Достаточно было один раз реализовать её и дальше просто использовать в своих проектах. Действительно, это оказалось очень удобно, даже тот же вывод текста в Turbo Pascal реализуется через процедуру Writeln(‘Текст’). Вначале процедур и функций было мало, но со временем их становилось все больше и больше. Их стали реализовывать в отдельные модули, а модули в свою очередь подключались к программе. Но, запомнить тысячу скажем подпрограмм и их назначение нереально! Да, можно использовать различную справочную литературу, интернет, но пока найдешь.Поэтому, мне очень захотелось создать справочник по стандартным функциям языка Turbo Pascal. Он представляет для меня интерес в том, что больше не понадобиться вспоминать в голове для чего нужна та или иная функция, а бывает что данная информация нужна срочно. А данный справочник сожержит как раз все функции, которые приходиться использовать при разработке своих приложений, к примеру функция odd(x)-проверка на четность. Да, я знаю, существует огромное количество справочных пособий по данной тебе, но когда я стал их скачивать из интернета, то там помимо функций идет и описание самого языка, т.е получается электронная книга. Меня данный вариант очень не устоел, так как мне надо именно справочник по функциям, а язык я и так знаю. В итоге я ничего не нашел, и приступил к работе над проектом. Мой справочник прост в использовании, не запутанный интерфейс, все сделано очень удобно. Для выбора справки по функции достаточно выбрать её из списка, и в окне можно увидеть её описание. Мне данный справочник и сейчас очень помогает в работе.

 

 


 

Раздел 1. Специальная часть

Постановка задачи.

Темой моего дипломного проектирования является разработка справочного пособия по стандартным функциям Turbo Pascal.

Описание алгоритма. Прежде всего необходимо создать форму, так как она явлется контейнером для всех остальных элементов управления. У меня в приложении существует одно главное окно, и два вспомогательных, одно из которых я использую вроде справки о программе, а другое включает в себя текстовое окно, в котором я записал справку о пользовании программой. После создания формы, а также инициаллизаци компонентов управления, которые располагаются на форме, мы видим полностью готовое окно программы. Для выбора интересующей нас функции используется компонет список, в котором хранятся заголовки всех доступных функций. Для выбора справки по какой либо функции необходимо выбрать данный список и оттуда выбрать нужную функцию. Собственно, сгенерировав данное событие по выбору функции, мы должны где то видеть её описание. Здесь я поступил просто и использовал компонент поле для текста, куда собственно и выводится описание нужной функции. Сами описания всех функций у меня хранятся в папке на диске в текстовых файлах – каждая функция в своем текстовом файле. Компонет список связан с данными файлами, так как на основе выбранного заголовка функции мы загружаем информацию из нужного текстового файла и отображаем её в поле для вывода описания функции. И так, при каждом изменении активного элемента из списка мы получаем описание соответствующей функции в окно вывода текста. Далее, у меня в программе присутствует возможность экспорта нужной функции в текстовый файл. Мне показалась данная возможность очень удобной, так как позволяет сохранить на диск описание конкретной функции для последующего использования.

 

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

Алгорит работы справочной системы:

1. Создание формы, инициаллизация компонентов управления

2. Выбор нужной функции из списка выбора

3. Загрузка описания нужной функции из текстового файла на диске в окно вывода информации

4. Если какой либо функции нет, или файл испорчен, то срабатывает защита и загрузка не происходит, а на экран выходит уведомление о причине отказа в загрузке

Модель задачи.

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

type

Tspravka = class(TForm)

cbx: TComboBox;

but: TButton;

GroupBox1: TGroupBox;

Button2: TButton;

Button3: TButton;

Label1: TLabel;

opis: TMemo;

sv: TSaveDialog;

procedure Button3Click(Sender: TObject);

procedure cbxChange(Sender: TObject);

procedure butClick(Sender: TObject);

procedure opisChange(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

spravka: Tspravka;

В данном коде идет описание формы и компонентов, которые на ней присутствуют. Как известно, класс имеет свойства, события и методы. В данном случае у нас создается класс формы, где роль полей играют компоненты, а события это обработчики.

var

spravka: Tspravka; Описание глобальной переменной формы

Компонент combobox позволяет нам выбирать заголовок интересующей нас функции.

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

Получается что то вроде массива строк. Но, как только я записал сюда заголовки всех функций, мне необходимо каким то образом загружать описание нужной функции на основании выбранного элемента из списка в окно описания функции. Я отлично знаю, что у компонента combbobox есть такое свойство ItemIndex. Данное свойство отвечает за текущий выбранный компонент, иначе говоря за индекс выбранной строи. Следует помнить, что нумерация строк в combobox идет начиная с ноля! Для загрузки нужного описания функции я использовал событие combobox.Change, которое срабатывает каждый раз при изменении текста в списке. Данный обработчик я реализовал следующим образом:

procedure Tspravka.cbxChange(Sender: TObject);

begin

case cbx.ItemIndex of

0:

begin

if FileExists('resurs\pris.txt') then

opis.Lines.LoadFromFile('resurs\pris.txt') else ShowMessage('Нет нужного описания!');

end;

1:

begin

if FileExists('resurs\begs.txt') then

opis.Lines.LoadFromFile('resurs\begs.txt') else

ShowMessage('Нет нужного описания!');

end;

2:

begin

if FileExists('resurs\ifs.txt') then

opis.Lines.LoadFromFile('resurs\ifs.txt') else ShowMessage('Нет нужного описания!');

end;

3:

begin

if FileExists('resurs\cs.txt') then

opis.Lines.LoadFromFile('resurs\cs.txt') else

ShowMessage('Нет нужного описания!');

end;

4:

begin

if FileExists('resurs\whs.txt') then

opis.Lines.LoadFromFile('resurs\whs.txt') else

ShowMessage('Нет нужного описания!');

end;

5:

begin

if FileExists('resurs\reps.txt') then

opis.Lines.LoadFromFile('resurs\reps.txt') else

ShowMessage('Нет нужного описания!');

end;

6:

begin

if FileExists('resurs\fos.txt') then

opis.Lines.LoadFromFile('resurs\fos.txt') else

ShowMessage('Нет нужного описания!');

end;

7:

begin

if FileExists('resurs\gts.txt') then

opis.Lines.LoadFromFile('resurs\gts.txt') else

ShowMessage('Нет нужного описания!');

end;

8:

begin

if FileExists('resurs\wth.txt') then

opis.Lines.LoadFromFile('resurs\wth.txt') else

ShowMessage('Нет нужного описания!');

end;

9:

begin

if FileExists('resurs\ins.txt') then

opis.Lines.LoadFromFile('resurs\ins.txt') else

ShowMessage('Нет нужного описания!');

end;

10:

begin

if FileExists('resurs\preds.txt') then

opis.Lines.LoadFromFile('resurs\preds.txt') else

ShowMessage('Нет нужного описания!');

end;

11:

begin

if FileExists('resurs\hth.txt') then

opis.Lines.LoadFromFile('resurs\hth.txt') else

ShowMessage('Нет нужного описания!');

end;

12:

begin

if FileExists('resurs\ords.txt') then

opis.Lines.LoadFromFile('resurs\ords.txt') else

ShowMessage('Нет нужного описания!');

end;

13:

begin

if FileExists('resurs\ups.txt') then

opis.Lines.LoadFromFile('resurs\ups.txt') else

ShowMessage('Нет нужного описания!');

end;

14:

begin

if FileExists('resurs\cons.txt') then

opis.Lines.LoadFromFile('resurs\cons.txt') else

ShowMessage('Нет нужного описания!');

end;

15:

begin

if FileExists('resurs\cops.txt') then

opis.Lines.LoadFromFile('resurs\cops.txt') else

ShowMessage('Нет нужного описания!');

end;

16:

begin

if FileExists('resurs\pss.txt') then

opis.Lines.LoadFromFile('resurs\pss.txt') else

ShowMessage('Нет нужного описания!');

end;

17:

begin

if FileExists('resurs\lenss.txt') then

opis.Lines.LoadFromFile('resurs\lenss.txt') else

ShowMessage('Нет нужного описания!');

end;

 

 

end;

end;

Здесь я использовал оператор выбора case x of.. end; где x у меня текущий выбранный компонент из списка, а так как строки в свойстве items нумеруются с ноля, то значит и сами заголовки у меня получат индексы начиная с ноля, одним словом по порядку.Я этим воспользовался, и на основании текущего выделенного элемента, у которого есть свойство ItemIndex у меня происходит сравнение с константами выбора, и при совпадении загружается содержимое текстового файла в окно описания функции. Это реализуется методом LoadFromFiles свойства Lines, который загружает нужный текстовый файл. В случае, если нужного файла на диске не будет, то произойдет исключительная ситуация. Для этого я предусмотрел защиту в виде проверке файла на существование:

if FileExists('resurs\ords.txt') then

opis.Lines.LoadFromFile('resurs\ords.txt') else

ShowMessage('Нет нужного описания!');

Функция FileExists(‘путь к файлу’) проверяет, существует ли файл, указанный в качестве параметра, и если существует то возвращает true. Процедура ShowMessage(‘Текст’) просто выводит текст в окно. Для экспорта описания нужной функции я использовал компонент сохранения файла SaveDialog.

При нажатии на кнопку “Экспорт в текстовый файл” я создал следующий обработчик:

if sv.Execute then

opis.Lines.SaveToFile(sv.FileName) else

ShowMessage('Не задан путь!');

Компонент SaveDialog имеет свойство Execute, которое имеет булевый тип и показывает, открыл ли диалог пользователь программы или отказался от сохранения файла, и если он не отказался то здесь происходит сохранение текстового содержимого из окна описания данных функции в файл на диск. Делает это метод SaveToFile(‘Имя файла’), в качестве аргумента которому передаётся имя файла. У диалога SaveDialog имеется свойство FileName, где хранится текущее имя, его я и передаю в качестве параметра. При нажатии кнопки о программе запускается дополнительное окно:

 

procedure Tspravka.Button2Click(Sender: TObject);

begin

abouts.ShowModal;

end;

При нажатие кнопки выход происходит завершение работы программы.

procedure Tspravka.Button3Click(Sender: TObject);

begin

Application.Terminate;

end;

1.3 Выбор языка программирования

Вначале никаких языков программирования не было – для первых ЭВМ программы писались на "чистом" машинном языке. Это было весьма трудным и кропотливым занятием. Затем кому-то пришло в голову, что проще создать программу, которая сама будет переводить исходный код, написанный по определенным правилам, в машинный язык. Так появился первый компилятор – Ассемблер. Компилятор – программа, которая переводит исходный программный код в машинный язык, и создает полноценный исполняемый программный файл. Такие файлы могут иметь расширение *.com и *.exe. Расширения *.com изредка еще встречаются в старых программах, которые создавались под операционную систему MS-DOS. Все современные программы, созданные для Windows, имеют расширение *.exe.

Также существуют интерпретаторы – программы, которые не создают исполняемый программный файл. Интерпретаторы представляют собой оболочку, в которую нужно загрузить файл с исходным текстом программы, затем интерпретаторы построчно переводят код в машинный язык, и выполняют его. Наиболее известным интерпретатором является классический Бэйсик (Basic). Неудобство использования интерпретаторов и программного обеспечения, созданного на них, не позволяют использовать их широко. Для распространения программ, созданных на интерпретаторе, необходимо на компьютер пользователя установить не только написанную программу, но и сам интерпретатор. А пользователю придется научиться пользоваться этим интерпретатором (загружать в него программу, давать команду на выполнение), а также научиться пользоваться самой программой. Однако в некоторых случаях интерпретаторы бывают весьма полезны, например, интерпретаторы PHP и Perl, используемые в Web-программировании, выполняются на стороне сервера, и не доставляют пользователю проблем.

Ассемблер наиболее приближен к машинному языку, поэтому его называют языком низкого уровня. Писать программы на Ассемблере было проще, чем на "чистом машинном" языке, в результате программы создавались быстрей. Рынок программного обеспечения имеет одно важное свойство – лидирует та программа, которая появилась на рынке раньше. Создавать программы на Ассемблере стало не только проще, но и выгодней.

Создание Ассемблера способствовало бурному развитию языков программирования. Появилось множество языков высокого уровня – C, C++, Pascal и многие другие. Правила создания кода на языках высокого уровня более приближены к человеческим языкам, поэтому программы на таких языках создавались еще проще и быстрей. Языки программирования стали совершенствоваться не по дням, а по часам. Первые языки высокого уровня были процедурными – в них логика программы строилась на использовании функций и процедур, которые можно вызвать из любого места программы.

Затем появились объектные языки программирования. В них логика программы строилась на объектах, каждый из которых имел собственные свойства, методы и события, которые могли быть унаследованы потомками этого объекта. Другими словами, создание программ многократно облегчалось – вместо того, чтобы написать десяток страниц кода, достаточно было просто объявить такой-то объект. Такие языки стали называть объектно-ориентированными (ООП – Объектно-Ориентированное Программирование).

Последним звеном эволюции языков программирования стали визуальные среды разработки программ. Вы просто выбираете объект – компонент, перетаскиваете его на форму, и уже в процессе разработки программы видите то, что должно получиться в результате. Примерно также при редактировании текста в редакторе MS Word вы сразу видите то, что должно получиться при печати этого текста на лист бумаги. Среда разработки программ взяла на себя почти всю "черную" работу по созданию кода. Программирование перестало быть нудным и трудоемким, и превратилось в творческий процесс.

Конечно, за все в мире приходится платить. За удобство создания программ мы расплачиваемся увеличением размера исполняемого программного файла, которое особенно заметно при создании небольших программ, и практически незаметно при создании сложных программных комплексов. Современные персональные компьютеры имеют быстрый процессор, память и жесткие диски больших размеров, так что на это неудобство можно уже не обращать внимания. Разумеется, бывают исключения – если при создании программного кода критическими являются размер исполняемого файла и скорость его исполнения, то лучше использовать Assembler или C. Такая необходимость возникает при написании операционных систем и драйверов. На современном рынке программного обеспечения, однако, более востребовано прикладное программирование. Утилиты, программы общего назначения, программы для работы с базами данных. И здесь Delphi является бесспорным лидером среди визуальных сред разработки программ.

История Delphi начинается с 60-х годов, когда профессор Н.Вирт разработал язык высокого уровня Pascal. Это был лучший язык для изучения программирования, и для создания программ для операционной системы MS-DOS. Затем, в 1983 году, А. Хейлсберг совместно с другими программистами, которые только что организовали компанию Borland, разработал компилятор Turbo Pascal, который стал следующим шагом в эволюции Delphi. Затем появился Object Pascal, который уже использовал Объектно-Ориентированный подход к программированию. Когда появилась первая версия Windows – Windows 3.10, Программисты Borland создали Delphi 1. Это уже была объектно-ориентированная среда для визуальной разработки программ, основанная на языке Object Pascal.

С появлением Windows 95 появилась Delphi 2, затем Delphi 3, 4, 5. Язык программирования Object Pascal, который являлся стержнем Delphi, претерпел такие существенные изменения, что с появлением Delphi 6 компания Borland, которая уже превратилась в корпорацию, официально объявила о переименовании Object Pascal в Delphi. Поэтому правы те, кто говорит, что Delphi – это визуальная среда разработки программ. Но также правы и те, кто утверждает, что Delphi – это один из лучших языков программирования.

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

Основу Delphi составляет не только сам язык, но и RAD (Rapid Application Development) – среда быстрой разработки программ. Благодаря визуальному программированию, а также достаточно большой библиотеке визуальных компонентов, Delphi позволяет создавать программы наиболее быстро и эффективно, принимая на себя основную работу, и оставляя программисту творческий процесс. Разумеется, возможность быстрого создания профессиональных приложений для Windows делает Delphi – программистов востребованными во всех отраслях человеческой деятельности. При загрузке Delphi 7 вы видите такую картину:


Рис. 1.1. Рабочая среда Delphi 7

Познакомьтесь – это Delphi. У нее есть много окон, панелей, компонентов. С большинством из них мы познакомимся со временем, а пока нам нужно обратить внимание на 5 окон:

1. Главное окно Delphi. Здесь находится основное меню, различные панели инструментов и палитра компонентов, состоящая из множества вкладок.

2. Конструктор формы. Здесь мы визуально видим, как будет выглядеть форма программы, здесь мы будем создавать интерфейс, перенося на форму различные компоненты, и расставляя их таким образом, чтобы интерфейс выглядел привлекательным. Нам часто придется переключаться между конструктором форм и редактором кода, делается это клавишей F12.

3. Редактор кода. Здесь мы видим исходный код программы, который создан самой Delphi. Тут же мы будем вводить наш собственный код.

4. Объектный инспектор. Он предназначен для управления объектами проекта и состоит из двух вкладок – Properties (Свойства) и Events (События).

5. Дерево объектов. Здесь мы видим, какой именно объект в данный момент является текущим. Это окно будет особенно полезно, когда на форме появится множество компонентов.

Когда открывается Delphi, она автоматически создает и отображает новый проект (программу). На рисунке вы видите проект, который содержит только одну стандартную форму. Форма – это тоже объект, который представляет собой окно программы. Чтобы программа делала что-то полезное, нам придется вносить изменения в нее. Выведем текст "Hello, world!" первым способом. Для этого в инспекторе объектов найдите свойство Caption. В данный момент текущим является объект – форма, и свойство Caption формы отвечает за надпись на системной строке программы (синяя полоса вверху любого программного окна). По умолчанию, свойство Caption содержит надпись "Form1", также называется и сама форма. Измените эту надпись на "Hello, world!" (конечно, без кавычек). Уже в процессе ввода текста вы видите, что надпись в системной строке принимает новый вид. Мы ввели этот текст одним способом.

Теперь нам нужно сохранить проект. Проект – совокупность файлов разных форматов, из которых создается программа. Об этом мы подробней поговорим в одной из следующих лекций, а пока запомните правило – каждую программу (проект), которую вы создаете, нужно сохранять в отдельной папке. Если вы все проекты станете сохранять в одну папку, то очень скоро запутаетесь. Чтобы сохранить проект, выполним следующие действия:

1. Выбираем команду меню "File – Save All" (сохранить все), либо нажимаем горячие клавиши <Shift+Ctrl+S>, либо нажимаем одноименную кнопку на панели инструментов


Рис. 1.2. Кнопки Save (Сохранить) и Save All (Сохранить всё) на панели инструментов

2. Затем выходит окно с предложением сохранить модуль – текстовый файл с исходным кодом, принадлежащий форме. Файл имеет расширение *.pas. Имеем в виду, что каждый проект сохраняется в отдельную папку, поэтому вначале щелкнем правой кнопкой мыши по свободному месту окна с папками, и выберем команду "Создать - Папку". Дадим папке какое-либо имя, например, "01". После создания папки открываем ее.

3. Далее в поле "Имя файла" укажем имя сохраняемого модуля. Имя может быть любым, но обязательно латинскими символами. Еще имя модуля не должно совпадать с именем формы. Обычно, имена формам и модулям стараются делать информативными, то есть, по имени можно будет догадаться, что это за файл. Поскольку это главная форма проекта, дадим ей имя "Main", и нажмем кнопку "Сохранить".

4. Затем нам будет предложено дать имя проекту в целом. Имя проекта будет совпадать с именем исполняемого программного файла. Если мы хотим, к примеру, получить файл "hello.exe", то дадим проекту имя "hello". Нажмем кнопку "Сохранить".

Далее нам необходимо скомпилировать программу, то есть, перевести исходный код в выполняемый exe-файл. Для этого мы можем выбрать команду меню "Run - Run", либо нажать горячую клавишу F9, либо нажать кнопку "Run" на панели инструментов (на кнопке изображение зеленой стрелки, указывающей вправо). В результате, программа была не только скомпилирована, но и запущена. Если вы посмотрите на системную строку Delphi, то увидите надпись "Delphi 7 – hello [Running]", а окна инспектора объектов и дерева объектов исчезли. Это говорит о том, что программа находится в режиме выполнения. Выполняемая программа имеет точно такой же вид, как наша главная форма, только на форме отсутствует точечная сетка, предназначенная для облегчения дизайна. Окно полученной программы содержит все стандартные кнопки Windows – программы. Щелкнув по красному крестику в правой верхней части окна, закройте программу (но не Delphi), и вы увидите прежнюю форму.

Обратите внимание, что свойства в Объектном Инспекторе принадлежат выделенному в данный момент компоненту. Выделяются компоненты простым щелчком мыши. Имейте в виду, что щелкать нужно один раз. Двойной щелчок создаст обработчик события – процедуру. Если вы ошибочно создадите таким образом процедуру, то просто сохраните проект, ничего в нее не вписывая – при сохранении последние пустые процедуры автоматически удаляются. Удалять их вручную не рекомендуется.


1.4 Блок схема

 
 



1.5 Листинг программы

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls;

 

type

Tspravka = class(TForm)

cbx: TComboBox;

but: TButton;

GroupBox1: TGroupBox;

Button2: TButton;

Button3: TButton;

Label1: TLabel;

opis: TMemo;

sv: TSaveDialog;

procedure Button3Click(Sender: TObject);

procedure cbxChange(Sender: TObject);

procedure butClick(Sender: TObject);

procedure opisChange(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 
 


var

spravka: Tspravka;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure Tspravka.Button3Click(Sender: TObject);

begin

Application.Terminate;

end;

 

procedure Tspravka.cbxChange(Sender: TObject);

begin

case cbx.ItemIndex of

0:

begin

if FileExists('resurs\pris.txt') then

opis.Lines.LoadFromFile('resurs\pris.txt') else ShowMessage('Нет нужного описания!');

end;

1:

begin

if FileExists('resurs\begs.txt') then

opis.Lines.LoadFromFile('resurs\begs.txt') else

ShowMessage('Нет нужного описания!');

end;

2:

begin

if FileExists('resurs\ifs.txt') then

opis.Lines.LoadFromFile('resurs\ifs.txt') else ShowMessage('Нет нужного описания!');

end;

3:

begin

if FileExists('resurs\cs.txt') then

opis.Lines.LoadFromFile('resurs\cs.txt') else

ShowMessage('Нет нужного описания!');

end;

4:

begin

if FileExists('resurs\whs.txt') then

opis.Lines.LoadFromFile('resurs\whs.txt') else

ShowMessage('Нет нужного описания!');

end;

5:

begin

if FileExists('resurs\reps.txt') then

opis.Lines.LoadFromFile('resurs\reps.txt') else

ShowMessage('Нет нужного описания!');

end;

6:

begin

if FileExists('resurs\fos.txt') then

opis.Lines.LoadFromFile('resurs\fos.txt') else

ShowMessage('Нет нужного описания!');

end;

7:

begin

if FileExists('resurs\gts.txt') then

opis.Lines.LoadFromFile('resurs\gts.txt') else

ShowMessage('Нет нужного описания!');

end;

8:

begin

if FileExists('resurs\wth.txt') then

opis.Lines.LoadFromFile('resurs\wth.txt') else

ShowMessage('Нет нужного описания!');

end;

9:

begin

if FileExists('resurs\ins.txt') then

opis.Lines.LoadFromFile('resurs\ins.txt') else

ShowMessage('Нет нужного описания!');

end;

10:

begin

if FileExists('resurs\preds.txt') then

opis.Lines.LoadFromFile('resurs\preds.txt') else

ShowMessage('Нет нужного описания!');

end;

11:

begin

if FileExists('resurs\hth.txt') then

opis.Lines.LoadFromFile('resurs\hth.txt') else

ShowMessage('Нет нужного описания!');

end;

12:

begin

if FileExists('resurs\ords.txt') then

opis.Lines.LoadFromFile('resurs\ords.txt') else

ShowMessage('Нет нужного описания!');

end;

13:

begin

if FileExists('resurs\ups.txt') then

opis.Lines.LoadFromFile('resurs\ups.txt') else

ShowMessage('Нет нужного описания!');

end;

14:

begin

if FileExists('resurs\cons.txt') then

opis.Lines.LoadFromFile('resurs\cons.txt') else

ShowMessage('Нет нужного описания!');

end;

15:

begin

if FileExists('resurs\cops.txt') then

opis.Lines.LoadFromFile('resurs\cops.txt') else

ShowMessage('Нет нужного описания!');

end;

16:

begin

if FileExists('resurs\pss.txt') then

opis.Lines.LoadFromFile('resurs\pss.txt') else

ShowMessage('Нет нужного описания!');

end;

17:

begin

if FileExists('resurs\lenss.txt') then

opis.Lines.LoadFromFile('resurs\lenss.txt') else

ShowMessage('Нет нужного описания!');

end;

 

 

end;

end;

 

procedure Tspravka.butClick(Sender: TObject);

begin

if sv.Execute then

opis.Lines.SaveToFile(sv.FileName) else

ShowMessage('Не задан путь!');

end;

 

procedure Tspravka.opisChange(Sender: TObject);

begin

if opis.Text = '' then

but.Enabled:=false else

but.Enabled:=true;

end;

 

procedure Tspravka.Button2Click(Sender: TObject);

begin

abouts.ShowModal;

end;

 

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: