Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Поиск

Категории раздела

Диплом [327] Курсовая [699]
Реферат [397] Отчет [11]




Сб, 04.05.2024, 03:34
Приветствую Вас Гость | RSS
ДИПЛОМНИК т.8926-530-7902,strokdip@mail.ru Дипломные работы на заказ.
Главная | Регистрация | Вход
КАТАЛОГ ДИПЛОМНЫХ, КУРСОВЫХ РАБОТ


Главная » Каталог дипломов » бесплатно » Диплом [ Добавить материал ]

Автоматизированное проектирование натяжных потолков
Диплом | 25.11.2014, 13:35

СКАЧАТЬ РАБОТУ БЕСПЛАТНО - 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ
АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ НАТЯЖНЫХ ПОТОЛКОВ
ТЕКСТ ПРОГРАММЫ
ОПИСАНИЕ ПРОГРАММЫ
ВХОДНЫМИ ДАННЫМИ ЯВЛЯЮТСЯ:
ОПИСАНИЕ ПРИМЕНЕНИЯ
РУКОВОДСТВО ПРОГРАММИСТА
ЗАКЛЮЧЕНИЕ
ПРИЛОЖЕНИЯ
 
ВВЕДЕНИЕ

Со времён суммирующей машины Блеза Паскаля до появления первых ЭВМ компьютеры совершили огромный скачок вперёд - как по части сложности, так с точки зрения вычислительной мощности. И вместе с ростом мощностей росла и полезность применения компьютеров в тех или иных областях жизни человека. Так компьютер проник в сферу производства. Безусловно, первые компьютеры могли позволить себе далеко не все предприятия, и их цена ставила вопрос о целесообразности для конкретной организации введения в работу такого технического новшества. Но постепенно, с ростом количества компьютеров и повышением их мощностей, а также постепенным снижением их стоимости, компьютеры получали всё большее и большее распространение и внедрялись в новые сферы деятельности.
Сегодняшний компьютер - это универсальный оптимизатор рабочего времени, без которого трудно представить работу многих специалистов в самых различных областях. В том числе компьютеры используются и при проектировании натяжных потолков.
Применение натяжных потолков берёт начало ещё в далёких античных временах. Современный натяжной потолок представляет собой конструкцию из полотна, закреплённого на алюминиевом или пластиковом профиле под основным потолком. Ранние потолки чаще всего использовались в квартирах и офисных помещениях, где качественный ремонт настоящего потолка практически неосуществим. Позднее, следуя тенденциям, натяжные потолки начали набирать популярность и пользоваться всё большим и большим вниманием, становясь неотъемлемой частью интерьера.
Использование натяжных потолков не только эстетично, но и практично - натяжные потолки имеют ряд важных преимуществ перед настоящими, в числе которых высокая скорость монтажа, исключение трудовых затрат на подготовительные и финишные работы и обеспечение защиты помещения от протечек сверху.
Проектирование выкройки полотна связано с точным расчётом площади, поскольку неточности в расчётах могут привести к некачественной установке потолка и, как следствие, к его скорому провисанию. Поэтому очень важно при проектировании выкройки учесть все особенности формы настоящего потолка.
Программа "CEILING", разрабатываемая в качестве дипломного проекта, предоставляет широкие возможности по графическому проектированию потолков и расчёту их площади, что позволит значительно сократить временные и финансовые затраты на составление макетов потолков, повысить точность вычислений и, следовательно, поднять эффективность работы специалиста-проектировщика. Благодаря эффективному алгоритму нахождения площадей плоских многоугольников по координатам вершин, реализованному на языке программирования, результаты выполняемых программой расчётов имеют высокую степень точности и могут использоваться при выкройке полотна.
 

СКАЧАТЬ РАБОТУ БЕСПЛАТНО - 

АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ НАТЯЖНЫХ ПОТОЛКОВ

Основанием для разработки программы, автоматизирующей проектирование натяжных потолков, является задание на дипломный проект, выданное учреждением образования "Гомельский государственный машиностроительный колледж" 21 марта 2011 года.
Программа предназначена для автоматизации действий, выполняемых специалистами-проектировщиками фирм, занимающихся установкой натяжных потолков.
Использование программы значительно сокращает время, необходимое для проектирования макета потолка и расчёта стоимости установки натяжных потолков. В основе действий, выполняемых программой при вычислении площадей потолков по шаблону, лежат формулы нахождения площадей геометрических фигур:

 
Рисунок 1 Прямоугольник

  (1)

 
Рисунок 2 Параллелограмм

  (2)

 
Рисунок 3 Трапеция

  (3)

 
Рисунок 4 Треугольник

  (4)

 
Рисунок 5 Круг

  (5)

 
Рисунок 6 Эллипс

  (6)

 
Рисунок 7 Правильный n-угольник

  (7)

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

  (8)

По завершении цикла модуль итогового значения делится на два, образуя результат.
Для решения задачи предлагаются следующие входные и выходные данные:
•    длины сторон (м.);
•    длина высоты (м.);
•    количество сторон;
•    радиус (м.);
•    координаты точек;
•    Ф. И.О. заказчика;
•    количество светильников;
•    количество труб;
•    стоимость светильника (долл.);
•    стоимость трубы (долл.);
•    стоимость квадратного метра (долл.).
Выходные данные:
•    площадь потолка комнаты (м. кв.);
•    площадь натяжного потолка (м. кв.);
•    общая стоимость заказа (долл.);
•    сумма задатка (долл.).
Разрабатываемая программа должна предоставлять пользователю следующие возможности:
1    ввод данных;
2    хранение данных, необходимых для расчётов;
3    вычисление площадей потолков простой формы по шаблону;
4    графическое проектирование и вычисление площадей потолков сложной формы;
5    просмотр результатов;
6    расчёт стоимости установки потолка;
7    вывод отчётов с результатами вычислений в текстовые файлы *. txt и графические файлы *. bmp.
Результатом расчётов являются следующие значения:
•    площадь потолка комнаты (м. кв.);
•    площадь натяжного потолка (м. кв.);
•    общая стоимость заказа (долл.);
•    сумма задатка (долл.).
Результаты работы программы должны выводиться на экран монитора и по желанию пользователя экспортироваться в текстовые файлы *. txt и графические файлы *. bmp.
Для написания данной программы был выбран язык программирования Object Pascal в среде программирования Borland Delphi 7.0 под управлением 64-разрядной операционной системы Windows. Язык и среда выбраны по ряду важных причин, влияющих на ход разработки программы и на саму программу в целом:
1    Логичная и совершенная реализация принципов объектно-ориентированного программирования;
2    Лёгкий в освоении синтаксис;
3    Возможность быстрого создания привлекательного пользовательского интерфейса с использованием стандартного набора компонентов;
4    Создание оптимизированного кода при компиляции. exe-файла, в результате чего он занимает сравнительно небольшой объём памяти;
5    Возможность полноценного использования функций WinAPI в разрабатываемых приложениях.
Указанные возможности и особенности позволяют сделать вывод о целесообразности выбора именно этих языка и среды.
Для нормального функционирования программы необходим следующий набор технических средств и программного обеспечения:
•    процессор Intel Pentium IV 1.0 ГГц или выше;
•    монитор SVGA, поддерживающий разрешение не менее 1024х768;
•    объём оперативной памяти 256 Мб и более;
•    свободное место на жёстком диске 20 Мб и более;
•    манипулятор типа "мышь";
•    клавиатура;
•    операционная система версии Windows XP и выше.
Для обоснования сметной стоимости программы и срока возврата инвестиций необходимо рассчитать следующие показатели. Расчёт будет производиться согласно Постановлению Министерства труда и социальной защиты Республики Беларусь от 27 июня 2007 г. "Об утверждении укрупнённых норм затрат труда на разработку программного обеспечения".

Таблица 1 - Перечень и объём функций программного обеспечения
Код функции    Наименование (содержание) функций    Объём функции строк
исходного кода (LOC) 
        по каталогу Vi    уточнённый Vу
101    Организация ввода информации    100    56
102    Контроль, предварительная обработка и ввод информации    290    168
107    Организация ввода/вывода информации в интерактивном режиме    170    112
303    Обработка файлов    750    448
305    Формирование файла    1100    644
506    Обработка ошибочных и сбойных ситуаций    970    514
507    Обеспечение интерфейса между компонентами    1120    644
707    Графический вывод результатов    330    196
Итого        4830    2782

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

KС = 1 + 0,08 + 1,26 = 1,34

Программа является развитием определенного параметрического ряда ПО. Новизна программы соответствует категории Б: Н = 1,00
При разработке программы доля используемых стандартных модулей составила менее 20%: Т = 0,9
Новизне программы категории Б соответствует следующее распределение трудоёмкости по стадиям:

КТЗ=0,10; КЭП=0, 20; KТП=0,30; КРП=0,30; КВН=0,10

Нормативная трудоемкость разработки ПО (Т) определяется согласно нормам затрат труда на разработку программного обеспечения и составляет 25 чел. - дн.

Таблица 2 - Расчет общей трудоёмкости разработки ПО
Показатели    ТЗ    ЭП    ТП    РП    ВН    Итого
1    2    3    4    5    6    7
Коэффициенты удельных весов трудоемкости стадии разработки ПО (K)     0,10    0, 20    0,40    0, 20    0,10    1
Распределение нормативной трудоемкости программного обеспечения (ТН) по стадиям, чел. - дн.     2    5    9    13    3    30
Коэффициент сложности ПО (KС)     2,34    2,34    2,34    2,34    2,34    -
Коэффициент, учитывающий использование стандартных модулей (КТ)                 0,9        -
Коэффициент, учитывающий новизну ПО (KН)     1,00    1,00    1,00    1,00    1,00    -
Общая трудоемкость ПО (ТО) чел. - дн.     2    4    7    11    1    25

Итого время на разработку программы ПП=8*25=200 часов, в том числе машинное время ТМ=11*8=72 часа.
Определение стоимости машинного времени производится на основании данных из таблицы 3.

Таблица 3 - Исходная информация для определения стоимости машинного времени
Показатель    Условное обозначение    Единицы измерения    Значение, руб. 
1    2    3    4
Балансовая стоимость компьютера    БК    Рублей    1500000
Мощность, потребляемая компьютером    МК    КВт    0,3
Полезный фонд времени работы компьютера за год    FK    Час    2050
Балансовая стоимость принтера    БП    Рублей    300000
Продолжение таблицы 3
Мощность, потребляемая принтером    МП    КВт    0,05
Полезный фонд времени работы принтера за год    FП    Час.     500
Стоимость 1кВт/час    С    Рублей    611
Площадь на 1 рабочее место     SPM    М2    6
Стоимость 1м2 производственной площади    СПЛ    Рублей    34802
Норма амортизации для оборудования    НАО    Проценты    20
Норма амортизации для зданий    НАПЛ    Проценты    1
Отчисления на текущий ремонт оборудования (в процентах от балансовой стоимости)     PO    Проценты    3,1

Определение стоимости потребляемой электроэнергии осуществляется по формуле (9):

 , руб. (9)
СЭЛ= (0.3*2050+0.05*500) *611*0.8*1.05=328500 руб.

где КВР - коэффициент, учитывающий использование по времени (КВР=0,8);
КС - коэффициент, учитывающий потери в сети (КС=1,05).
Определение суммы амортизационных отчислений осуществляется по формуле (10):

 , руб. (10)
САО= (1500000+300000) *20/100+6*34802*1/100= 362088 руб.

натяжной потолок графическое проектирование
Определение затрат на текущий ремонт оборудования осуществляется по формуле (11):

 , руб. (11)
ЗР= (1500000+300000) *3,1/100= 55800 руб.

Результаты расчётов сводятся в таблицу 4.
Расчёт затрат на 1 машино-час ведётся, исходя из полезного фонда времени работы компьютера за год, то есть итог графы 3 таблицы 3, делённой на полезный фонд времени работы компьютера (FK).

Таблица 4 - Расчёт затрат на 1 машино-час
Показатель    Условное обозначение    Значение, рублей. 
        На год (ЗМГ)     на 1 машино-час (СМЧ) 
стоимость потребляемой электроэнергии    СЭЛ    328500    160,3
сумма ежегодных амортизационных отчислений.     САО    362088    176,7
Затраты на текущий ремонт оборудования    ЗР    55800    27,2
Итого:     746388    364,2

Затраты на один машино-час, руб.

 , руб. (12) СМЧ =746388/2050= 364,2 руб.

Расчёт стоимости машинного времени осуществляется по формуле (13):

 , руб. (13)

где ТМ - машинное время работы компьютера в расчёте на программу;
СМЧ - стоимость 1 машино-часа - итог графы 4 таблицы 4.

CMВР= 88*364,2 = 32049,6 руб. (14)

Расчёт затраты на материалы и покупные комплектующие изделия сводятся в таблицу 5.

Таблица 5 - Расчёт затрат на материалы
Наименование    Техническая характеристика    Количество    Отпускная цена, в рублях    Сумма, рублей
1    2    3    4    5
CD-диск    700 mb    1    1900    1900
Тонер для лазерного принтера        20    160    3200
Бумага     А4    20    50    1000
Итого:     6100
Транспортно-заготовительные расходы (ТЗР)     160
Всего с учётом ТЗР    6260

Таблица 6 - Расчет затрат на оплату труда
Вид работ    Трудоёмкость, час    Квалификационный разряд    Часовая тарифная ставка, руб.     Прямая зарплата, руб. 
Техническое задание     16    6    6755    108080
Эскизный проект    32    6    6755    216160
Технический проект    56    6    6755    378280
Рабочий проект    16    6    6755    108080
Внедрение программы    8    6    6755    54040
Итого    864640
Премии и доплаты (13% от прямой заработной платы)     112400
Итого, основная заработная плата    977040

ЧТС6=3550 * 1,73 * 1,1 = 6755 руб.

Таблица 7 - Расчёт отпускной цены программы
Наименование статей затрат    Сумма, руб.     Обоснование расчёта
1    2    3
1 Затраты на материалы    6260    Таблица 5
2 Стоимость машинного времени    32049,6    Формула 14
3 Основная заработная плата програм - миста    977040    Таблица 6
4 Дополнительная заработная плата программиста    127015    13% от п.3
5 Итого, фонд оплаты труда (ФОТ)     1104055    п.3+п.4
6 Отчисление в фонд социальной защиты населения и Белгосстрах    386419,25    35% от п.5
7 Накладные расходы    293112    30% от п.3
8 Полная себестоимость    1821895,3    п.1+п.2+п.5+п.6+п.7
9 Плановые накопления    182189,5    10% п.8
10 Цена разработчика (оптовая цена)     2004084,8    п.8+п.9
11 Налог на добавленную стоимость (НДС)     400817    20% от п.10
12 Итого стоимость ПП с НДС (Отпускная цена)     2404902    п.10+п.11

Отпускная цена программы принимается равной 2404900 руб.
Определение годовых эксплуатационных расходов при ручном решении задачи.
Годовые эксплуатационные расходы при ручной обработке информации определяются по формуле (15):

ЗР = ТР * к * tЧР, руб. (15)

где ТР - трудоёмкость разового решения задачи вручную (5 ч.);
к - периодичность решения задачи в течение года (300);
tЧР - среднечасовая ставка работника, осуществляющего ручной расчет задачи (5500);

ЗР=5*300*5500=3300000 руб.

Для расчёта годовых текущих затрат, связанных с эксплуатацией программы, необходимо определить время решения данной задачи на ЭВМ. Время решения задачи на ЭВМ определяется по формуле (16):

ТЗ= (ТВВ+ТР) * (1+dПЗ) /60, ч. (16)

где ТВВ - время ввода в ЭВМ исходных данных, необходимых для решения задачи, мин.;
ТР - время вычислений, мин.;
dПЗ - коэффициент, учитывающий подготовительно-заключительное время (dПЗ=0,25).
Время ввода в ЭВМ исходных данных может быть определено по формуле (17):

ТВВ =KZ*HZ/100, мин. (17)

где KZ - среднее количество знаков, набираемых с клавиатуры при вводе исходных данных (KZ=3);
HZ - норматив набора 100 знаков, мин. (HZ=6).
ТЗ=0,07 ч.
На основе рассчитанного времени решения задачи может быть определена заработная плата пользователя данной программы.
Затраты на заработную плату пользователя программы:

ЗП=ТЗ*к*tЧП, руб. (18)

где ТЗ - время решения задачи на ЭВМ;
tЧП - среднечасовая ставка пользователя программы.
В состав затрат, связанных с решением задачи включаются также затраты, связанные с эксплуатацией ЭВМ.

ЗП=0,06 *300*5500=99000 руб.

Затраты на оплату аренды ЭВМ для решения задачи определяются по следующей формуле (55):

ЗА=ТЗ*к*СМЧ, руб. (19)
ЗА=0,06 *300*364,2=6556 руб.

Годовые текущие затраты, связанные с эксплуатацией, определяются по формуле (20):

ЗТ=ЗП+ЗА, руб. (20)

где ЗП - затраты на заработную плату пользователя программы;
ЗА - затраты на плату аренды ЭВМ при решении задачи.

ЗТ=99000 + 6556= 105556 руб.

Ожидаемый прирост прибыли в результате внедрения задачи взамен ручного ее расчета укрупнен, но может быть определен по формуле (21):

ПУ= (ЗР-ЗТ) * (1-СНП),руб. (21)

где СНП - ставка налога на прибыль (СНП =24%).

ПУ= (3300000 - 105556) * (1-0,24) = 2363887 руб.

Годовой экономический эффект от сокращения ручного труда при обработке информации определяется по формуле (22):

ЭФ=ПУ-Е*КО=ПУ-Е* (КЗ+ЦПР), руб. (22)
ЭФ=2363887 - 0,25* (51,2 + 2404900) =1762662 руб.

где Е - коэффициент эффективности, равный ставке за кредиты на рынке долгосрочных кредитов (Е=0,25);
КЗ - дополнительные затраты пользователя, единовременного характера, необходимые для эксплуатации программы, определяются по формуле (23):

КЗ =БК*ТЗ/FК, руб. (23)
КЗ =1500000*0,07 /2050=51,2 руб.

Срок возврата инвестиций определяется по формуле (24):

ТВ=КО/ПУ= (КЗ+ЦПР) /ПУ (24)
ТВ= (51,2 + 2404900) / 2363887= 1 год

Результаты расчета сводятся в таблицу 8.

Таблица 8 - Технико-экономические показатели проекта
Наименование показателя    Варианты
    ручной    машинный
1 Трудоёмкость решения задачи, час    5    0,06
2 Периодичность решения задачи, раз/год    300    300
3 Годовые текущие затраты, связанные с решением задачи, руб.     3300000    105556
4 Отпускная цена программы, руб.      -     2404900
5 Прирост условной прибыли, руб.     -    2363887
6 Годовой экономический эффект, руб.      -     1762662
7 Срок возврата инвестиций, лет     -     1

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

Автоматизированное проектирование натяжных потолков
 
ТЕКСТ ПРОГРАММЫ

Модуль "MainUnit" - главное окно программы:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, MMSystem, jpeg, StdCtrls, XPMan, IniFiles, ComCtrls,
Buttons;
type
TMainForm = class (TForm)
BGImg: TImage;
CloseBtn: TImage;
MinBtn: TImage;
LogoImg: TImage;
MainBtn: TImage;
CalcBtn: TImage;
OptBtn: TImage;
HelpBtn: TImage;
AboutBtn: TImage;
MainFormXPManifest: TXPManifest;
AboutGrBox: TGroupBox;
AboutInfLbl: TLabel;
AboutNameLbl: TLabel;
AboutVerLbl: TLabel;
AboutGenLbl: TLabel;
HelpGrBox: TGroupBox;
HelpLabelTEMP: TLabel;
OptGrBox: TGroupBox;
LogFileChBox: TCheckBox;
ClearLogLbl: TLabel;
CalcAreaBtn: TImage;
CalcPriceBtn: TImage;
SoundsChBox: TCheckBox;
OptSaveLbl: TLabel;
procedure CloseBtnClick (Sender: TObject);
procedure MinBtnClick (Sender: TObject);
procedure AboutBtnClick (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure HelpBtnClick (Sender: TObject);
procedure OptBtnClick (Sender: TObject);
procedure CalcBtnClick (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure LogFileChBoxClick (Sender: TObject);
procedure ClearLogLblClick (Sender: TObject);
procedure CalcAreaBtnClick (Sender: TObject);
procedure CalcPriceBtnClick (Sender: TObject);
procedure MainBtnClick (Sender: TObject);
procedure SoundsChBoxClick (Sender: TObject);
procedure OptSaveLblClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure EnableFog;
procedure DisableFog;
procedure FormAppear;
procedure FormDisappear;
procedure EventLog (Event: String);
var
MainForm: TMainForm;
SRoom: Real;
SCeil: Real;
Date: String; // переменная, хранящая текущую дату
Time: String; // переменная, хранящая текущее время
ErrorString: String;
GenCheck: Boolean;
Check: Boolean;
IsInt: Boolean;
IsCoordinate: Boolean;
IsX: Boolean;
IsY: Boolean;
IsWord: Boolean;
Parameter: Byte;
AutoSaving: Boolean;
INI: TIniFile; // INI-файл программы
LogFile: TextFile; // текстовый лог-файл действий пользователя
LogFileDisabled: Boolean; // переменная, хранящая состояние лог-файла
LogFileSize: Byte; // перкменная, хранящая размер лог-файла
SoundsEnabled: Boolean; // переменная, хранящая состояние звукового сопровождения
CalcMenuOpened: Boolean; // переменная, хранящая состояние меню "Расчёт"
IllChar: array [1.151] of Char = ('q','w','e','r','t','y','u','i','o', // массив для защиты от некорректного ввода
'p','a','s','d','f','g','h','j','k',
'l','z','x','c','v','b','n','m','й',
'ц','у','к','е','н','г','ш','щ','з',
'х','ъ','ф','ы','в','а','п','р','о',
'л','д','ж','э','я','ч','с','м','и',
'т','ь','ь','б','ю','ё','Q','W','E',
'R','T','Y','U','I','O','P','A','S',
'D','F','G','H','J','K','L','Z','X',
'C','V','B','N','M','Й','Ц','У','К',
'Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф',
'Ы','В','А','П','Р','О','Л','Д','Ж',
'Э','Я','Ч','С','М','И','Т','Ь','Б',
'Ю','Ё','! ','@','#','$','%','^','&',
'*',' (',') ','-','_','=','+','/','\',
'{','}',' [','] ','"','<','>','; ',': ',
'№','? ','. ','~','`','''',' ');
IllNum: array [1.10] of Char = ('1','2','3','4','5','6','7','8','9','0');
implementation
uses ClosingUnit, FogUnit, CADUnit, BigFogUnit, CADUnitWTools;
{$R *. dfm}
procedure FormAppear; // процедура, анимирующая появление форм
var
i: Byte;
begin
if MainForm. Active = TRUE then
for i: = 0 to 255 do
begin
MainForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end
else
begin
if CADForm. Active = TRUE then
begin
for i: = 0 to 255 do
begin
CADForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if CADFormWTools. Active = TRUE then
begin
for i: = 0 to 255 do
begin
CADFormWTools. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if ClosingForm. Active = TRUE then
begin
for i: = 0 to 255 do
begin
ClosingForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
end;
end;
procedure FormDisappear; // процедура, анимирующая закрытие форм
var
i: Byte;
begin
if MainForm. Active = TRUE then
begin
for i: = 255 downto 0 do
begin
MainForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if CADForm. Active = TRUE then
begin
for i: = 255 downto 0 do
begin
CADForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if CADFormWTools. Active = TRUE then
begin
for i: = 255 downto 0 do
begin
CADFormWTools. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if ClosingForm. Active = TRUE then
begin
for i: = 255 downto 0 do
begin
ClosingForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
end;
procedure EnableFog; // процедура анимации затемнения формы
var
i: Byte;
begin
if MainForm. Active = TRUE then
begin
FogForm. Show;
for i: = 0 to 150 do
begin
FogForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if CADForm. Active = TRUE then
begin
BigFogForm. Show;
for i: = 0 to 150 do
begin
BigFogForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
if CADFormWTools. Active = TRUE then
begin
BigFogForm. Show;
for i: = 0 to 150 do
begin
BigFogForm. AlphaBlendValue: = i;
Application. ProcessMessages;
Sleep (1);
end;
end;
end;
procedure DisableFog; // процедура анимации снятия затемнения формы
begin
FogForm. Close;
BigFogForm. Close;
end;
procedure EventLog (Event: String); // процедура добавления событий в лог-файл
var
SizeStream: TFileStream;
SizeInB: Real;
SizeInKb: Real;
SizeInMb: Real;
begin
Date: = DateToStr (SysUtils. Date);
Time: = TimeToStr (SysUtils. Time);
Append (LogFile);
Writeln (LogFile, '' + Date + ' ' + Time + Event);
Flush (LogFile);
Close (LogFile);
SizeStream: = TFileStream. Create ('ActionLog. txt', fmOpenRead);
SizeInB: = SizeStream. Size;
SizeStream. Free;
if SizeInB < 1024 then
MainForm. ClearLogLbl. Caption: = 'Очистить лог-файл (' + FloatToStr (SizeInB) + ' байт) '
else
begin
SizeInKb: = SizeInB / 1024;
if SizeInKb < 1024 then
MainForm. ClearLogLbl. Caption: = 'Очистить лог-файл (' + FloatToStrF (SizeInKb, ffFixed, 4,2) + ' Кбайт) '
else
begin
SizeInMb: = SizeInKb / 1024;
MainForm. ClearLogLbl. Caption: = 'Очистить лог-файл (' + FloatToStrF (SizeInMb, ffFixed, 4,2) + ' Мбайт) '
end;
end;
end;
procedure GUIHide; // процедура скрытия элементов интерфейса
begin
MainForm. AboutGrBox. Visible: = FALSE;
MainForm. HelpGrBox. Visible: = FALSE;
MainForm. OptGrBox. Visible: = FALSE;
MainForm. LogoImg. Visible: = FALSE;
end;
procedure CalcMenuClose; // процедура анимации закрытия меню "Расчёт"
var
i: Byte;
begin
CalcMenuOpened: = FALSE;
MainForm. CalcAreaBtn. Visible: = FALSE;
MainForm. CalcPriceBtn. Visible: = FALSE;
for i: = 1 to 49 do
begin
MainForm. OptBtn. Top: = MainForm. OptBtn. Top - 1;
MainForm. AboutBtn. Top: = MainForm. AboutBtn. Top - 1;
MainForm. HelpBtn. Top: = MainForm. HelpBtn. Top - 1;
Application. ProcessMessages ();
Sleep (1);
end;
end;
procedure TMainForm. FormCreate (Sender: TObject); // обработка события запуска программы
begin
// MainForm. DoubleBuffered: =TRUE;
GUIHide;
LogoImg. Visible: = TRUE;
MainForm. Show;
CalcMenuOpened: = FALSE;
AboutGenLbl. Caption: = 'Данная программа разработана в качестве дипломного проекта по заказу ИП Торопова И.Н. ' + Chr (10) +
'Разработчик - Евгений Богданов, группа Пк-41. ' + Chr (10) +
'УО "Гомельский Государственный Машиностроительный Колледж", 2011 г. ';
AssignFile (LogFile,'ActionLog. txt');
if not FileExists ('ActionLog. txt') then
begin
Rewrite (LogFile);
CloseFile (LogFile);
end;
EventLog (' Программа запущена');
INI: = TIniFile. Create (ExtractFilePath (ParamStr (0)) + 'Settings. ini');
INI. WriteInteger ('Position', 'X', MainForm. Left);
INI. WriteInteger ('Position', 'Y', MainForm. Top);
LogFileDisabled: = INI. ReadBool ('LogFile', 'LogFileDisabled', LogFileDisabled);
if LogFileDisabled = TRUE then
begin
LogFileChBox. Checked: = TRUE;
EventLog (' ВЕДЕНИЕ ЛОГ-ФАЙЛА ОТКЛЮЧЕНО В ОДНОЙ ИЗ ПРЕДЫДУЩИХ СЕССИЙ');
end
else
LogFileChBox. Checked: = FALSE;
SoundsEnabled: = INI. ReadBool ('Sounds', 'SoundsEnabled', SoundsEnabled);
if SoundsEnabled = TRUE then
SoundsChBox. Checked: = TRUE
else
SoundsChBox. Checked: = FALSE;
INI. Free;
FormAppear;
end;
procedure TMainForm. MinBtnClick (Sender: TObject); // обработка нажатия кнопки "Свернуть"
begin
if SoundsEnabled = TRUE then
PlaySound (PChar ('Sounds/OnSection. wav'), 0, SND_ASYNC);
ShowWindow (Application. Handle, SW_MINIMIZE);
end;
procedure TMainForm. CloseBtnClick (Sender: TObject); // обработка нажатия кнопки "Закрыть"
begin
if SoundsEnabled = TRUE then
PlaySound (PChar ('Sounds/OnSection. wav'), 0, SND_ASYNC);
EnableFog;
Parameter: = 1;

Добавил: Демьян |
Просмотров: 560
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Дипломник © 2024
магазин дипломов, диплом на заказ, заказ диплома, заказать дипломную работу, заказать дипломную работу mba