СКАЧАТЬ РАБОТУ БЕСПЛАТНО -
АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ НАТЯЖНЫХ ПОТОЛКОВ
Основанием для разработки программы, автоматизирующей проектирование натяжных потолков, является задание на дипломный проект, выданное учреждением образования "Гомельский государственный машиностроительный колледж" 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;
|