Английский язык : Курсовая работа: Расчет стоимости пластиковых оконных конструкций и дверей
Курсовая работа: Расчет стоимости пластиковых оконных конструкций и дверей
Министерство
образования и науки Российской Федерации
Федеральное
агентство по образованию
Государственное
образование учреждения
«Оренбургский
государственный университет»
КОЛЛЕДЖ
ЭЛЕКТРОНИКИ И БИЗНЕСА
Кафедра
вычислительной техники и математики
КУРСОВОЙ
ПРОЕКТ
по дисциплине
«Технология разработки программных продуктов»
Тема работы «Расчет
стоимости пластиковых оконных конструкций и дверей»
КОГУ
220105.4008.05П3
Руководитель
работы
__________Иштерякова
Т.И.
«___»_____________
2008 г.
Исполнитель
Студент гр. 37-П-3
___________Береговой
В.С.
«___»_____________
2008 г.
Оренбург 2008
Министерство
Образования и науки Российской Федерации
Федеральное
агентство по образованию
Государственное
образование учреждения
«Оренбургский
государственный университет»
КОЛЛЕДЖ
ЭЛЕКТРОНИКИ И БИЗНЕСА
Кафедра
вычислительной техники и математики
Задание на
курсовой проект
По дисциплине
«Технология разработки программных продуктов»
Тема работы
«Расчет стоимости пластиковых оконных конструкций и дверей»
Исходные
данные:
Прайс-лист
стоимости оконных конструкций,
виды оконных
конструкций,
технические
допуски оконных конструкций,
данные о
заказах и заказчике
_________________________
Дата выдачи
задания: «21»февраля 2008 г.
Руководитель:
_____________Иштерякова Т. И.
Исполнитель:
Студент гр.
37-П-3 _________Береговой В.С.
Дата защиты
задания: « »______2008 г
Оренбург 2008
Аннотация
В данном курсовом проекте
представлена программа «Расчет стоимости пластиковых оконных конструкций».
Основной целью программы
является упрощение и автоматизация расчетов стоимости пластиковых оконных
конструкций. Возможности программы позволяют формировать отчеты, производить
расчеты стоимости различных пластиковых оконных конструкций, сохранять все
заказы в файлы, выводить на печать отчеты.
Данный программный
продукт написан в среде Delphi 7 и был основан на модульном программировании.
Для реализации данной программы на ЭВМ был применен язык Borland Delphi 7.0.
Delphi - прекрасная
система визуального объектно-ориентированного программирования, одинаково
подходящая и новичкам, и опытным программистам. Новичку она позволяет с
небольшими затратами сил и времени создавать прикладные программы, которые
внешне неотличимы от программ, созданных профессионалами, и удовлетворяют всем
требованиям Windows.
Разработанная программа
предназначена для работы только в среде Windows или других Windows – подобных
систем.
The
summary
In the given
academic year project the program « Calculation of cost of plastic window
designs » is submitted.
The basic
purpose of the program is simplification and automation of calculations of cost
of plastic window designs. Opportunities of the program allow forming reports,
to make calculations of cost of various plastic window designs, to keep all
orders in files, to print reports.
The given
software product is written in Delphi 7 environment and has been based on
modular programming. Language Borland Delphi has been applied for realization
of the given program on the Borland Delphi 7.0.
Delphi - the
fine system of visual object-oriented programming equally suitable both to
beginners, and skilled programmers. She allows the beginner with small expenses
of forces and time to create applied programs which are externally
indistinguishable from the programs created by professionals, and meet all
requirements Windows.
The developed
program is intended for work only in Windows environment or others Windows -
similar systems.
Содержание
Введение 4
1 Постановка задачи 5
1.1 Структура взаимодействия входной и выходной информации 5
1.2 Требования к программно-аппаратному окружению 5
1.3 Требования к функциям, выполняемым системой 5
1.4 Требования к эргономике и технической эстетике
интерфейса 5
1.5 Требования к надежности и хранению информации 7
2 Пояснительная записка 6
2.1 Метод решения 7
2.2 Структурная схема программы 7
2.3 Диалоговый режим 8
2.4 Эскиз и спецификация типовых объектов управления
графического интерфейса 8
3 Руководство системного программиста 8
3.1 Схема взаимодействия модулей 9
3.2 Описание модулей 9
3.3 Настройка и проверка программы 9
3.3.1 Тестирование программного продукта. Способы
тестирования. 10
3.3.2 Сообщение системному программисту. 11
4 Руководство оператора
4.1 Выполнение программы 11
4.2 Сообщение оператору 13
Заключение 13
Список использованных источников 14
Приложение А - Входные и выходные документы 17
Приложение Б - Текст программы 18
Введение
Работа фирмы «Урал Строй
Монтаж» связанна с пластиковыми окнами и дверьми: установка, замеры, прием
заказов, и т.д. При приеме заказов приходится производить все расчеты вручную,
это очень затрудняет процесс. Для ускорения и упрощения работы разработана программа
«Урал Строй Монтаж», которая выполняет все поставленные задачи.
Программный продукт
позволяет добавлять данные о заказчике и заказе в базу данных, удалять и
просматривать уже имеющиеся в ней данные. Осуществляются функции запросов и
печати отчетов, а также позволяет значительно упростить расчет стоимости
заказов. Расчет осуществляется с учётом дополнительной комплектации оконных
конструкций (тонировка, подоконники, ламинирование, и т.д.). Предусмотренный в
программе расчет стоимости оконных конструкций позволяет самостоятельно
выбирать форму и тип оконных модулей, благодаря чему с помощью программы можно
рассчитать стоимость оконных конструкций практически любого типа. Все заказы
рассчитанные с помощью программы автоматически сохраняются в папку заказов,
также программа позволяет производить различные операции с этими файлами,
например печать, просмотр, редактирование и т.д. Так как фирма «Урал Строй
Монтаж» работает только с изготовителем оконных конструкций «Exprof», то все
цены, параметры, технические допуски этого изготовителя являются стандартом для
программы. Но в программе имеется возможность настроить все параметры
самостоятельно, поэтому программный продукт можно легко настроить на другого
изготовителя, если это будет необходимо.
Интерфейс данного
программного продукта прост, любой человек сможет легко разобраться в программе
и работать с ней, так она основана на пользователей с минимальными знаниями о
компьютерах. Программа «Расчет стоимости пластиковых оконных конструкций и
дверей» разработана в среде программирования Delphi 7.
1 Постановка задачи
Разработать программу «Расчет
стоимости пластиковых оконных конструкций» с учётом расчёта стоимости
заказываемых изделий, а также сохранением заказов в файлы. В программе будут
реализованы возможности добавления данных о заказах, вывод отчетов на печать, а
также расчет стоимости оконных конструкций с дополнительной комплектацией.
1.1 Схема взаимодействия
входной и выходной информации
Схема взаимодействия входной и
выходной информации изображена на рисунке 1.
 Данные о
 заказчике
  Данные о
размерах
   Данные о
 заказе
Рисунок 1 – Схема
взаимодействия входной и выходной информации
Входная информация по
задаче определяются как данные, поступающие на вход задачи и используемые для
её решения. Функция обработки входной информации заключается в следующем:
обработка ввода, хранение вводимых данных.
Выходная информация по
задаче может быть представлена в виде документов (типа листинга), файл БД. В
данной программе выходная информация будет представлена в виде: отчета, в
котором содержатся сведения о заказчике и заказе.
Функция обработки
выходной информации заключается в формировании документов выводимых на печать;
поиск необходимых данных.
1.2 Требования к
программно-аппаратному окружению
Минимальными системными
требованиями для данной задачи могут послужить средства вычислительной техники
не ниже:
- Процессор: Pentium III
и выше;
- ОЗУ не меньше 128Мб;
- Видеокарта с памятью не
менее 64Мб;
- Звуковая карта;
- CD-ROM;
- Монитор.
Программное обеспечение
работоспособности программы «Расчет стоимости пластиковых оконных конструкций»:
- ОС: Windows XP;
- Microsoft
Office;
- Delphi 7.
1. 3 Требования к
функциям, выполняемой системой
Разработанный программный
продукт «Расчет стоимости пластиковых оконных конструкций» должен удовлетворять
эргономическим требованиям. Программа должна: добавлять, удалять, просматривать
данные о заказе и заказчике в файлах, выводить отчеты на печать, записывать и
читать данных в файлах, а также производить расчеты стоимости заказов.
1.5 Требования к
эргономике и технической эстетике интерфейса
пользователя
Эргономика − научно
прикладная дисциплина, занимающаяся изучением и созданием эффективных систем,
управляемых человеком. Эргономика изучает движение человека в процессе
производственной деятельности, затраты его энергии, производительность и
интенсивность при конкретных видах работ.
Программа отличается
удобным и простым в использовании интерфейсом. Также в программе будет
предусмотрено сохранение текущих настроек программы, для разных пользователей.
Техническая эстетика -
это теоретическая и методологическая дисциплина, предметом которой являются:
во-первых, возможности и ограничения, доставляемые искусством технике, а
техникой - искусству, а во-вторых, способы их сосуществования и
взаимоосуществления.
Поэтому пользователи
могут с данной программой работать в любое время, а для этого специально
сделан, не сильно влияющий на глаза и нервную систему, интерфейс. Мягкие цвета,
правильное соотношение компонентов в интерфейсе, мало сильно вызывающих цветов.
1.6 Требования к
надёжности и хранению
Для надежности данную
программу можно хранить на жестком диске, но так как работать с ней могут как
бухгалтера, так и экономисты, то приходиться применять сменные носители, т.е.
дискеты, CD-диски. Данная программа занимает мало места на диске, поэтому е
легко перемещать на сменные носители, но всё же для полной надёжности программу
«Урал Строй Монтаж» лучше хранить на винчестере (HDD), в связи с тем, что
неожиданно может понадобиться изменение структуры задачи, либо внесение каких -
либо изменений в базу данных. Для установки программы необходимо 20 МБ памяти
на жестком диски и не менее 128 МБ оперативной памяти.
2 Пояснительная записка
Разработать программу
«Расчет стоимости пластиковых оконных конструкций» с учётом расчёта стоимости
заказываемых изделий, а также сохранением заказов в файлы. В программе будут
реализованы возможности добавления данных о заказах, вывод отчетов на печать, а
также расчет стоимости оконных конструкций с дополнительной комплектацией.
2. 1 Метод решения
Объектно-ориентированное
программирование представляет собой способ программирования, который напоминает
процесс человеческого мышления.
Модульное
программирование – организация программы как совокупности небольших независимых
блоков, называемых модулями, структура и поведение которых подчиняются
определенным правилам.
Использование модульного
программирования позволяет упростить тестирование программы и обнаружение
ошибок.
Модуль состоит из
заголовка, в котором после ключевого слова “unit” указывается имя модуля, и
четырех разделов: интерфейса, реализации, инициализации и деинициализации.
В разделе интерфейса
размещаются описания идентификаторов, которые должны быть доступны всем
модулями и программам, использующим этот модуль и содержащим его имя в списке
uses. В разделе интерфейса объявляются типы, константы, переменные и подпрограммы.
При этом для подпрограмм указываются только их заголовки. Другие используемые
модули указываются в списке “uses”. Этот раздел начинается ключевым словом
interface”.
В разделе реализации
располагается код подпрограмм, заголовки которых были приведены в разделе
интерфейса. Здесь можно описывать типы, объявлять константы и переменные и
описывать подпрограммы, которые используются только в этом модуле и за его
пределами не видны. Раздел реализации начинается ключевым словом
implementation”.
При разработке программы
были использованы следующие возможности Delphi: использование различных
компонентов, позволяющих создать как общий вид программы, так и реализовывать
функциональные задачи программы. Функции обработки информации представляют
собой ввод данных пользователей, сохранение и загрузка данных на диске,
пользователь может добавлять данные и сохранять их в файл. Для создания
приятного интерфейса использовались компоненты также из среды Delphi.
2.2 Структурная схема
программы
Разработанная программа
имеет достаточно удобную для работы пользователя структуру, соответствующая
основному требованию, предъявляемому к структуре программы. Меню программы
представляет собой структурную схему представленную на рисунке 2.

Рисунок 2 – Структурная
схема программы
2.3 Диалоговый режим
Диалоговый режим
взаимодействие пользователя с программным продуктом таким образом, что ведется
обмен сообщениями, влияющими на обработку данных.
В диалоговом режиме под
воздействием пользователя осуществляется запуск функций обработки, изменение
свойств объектов, производится настройка параметров, выдача информации на
печать.
В данном программном
продукте используется диалоговый режим с жестким сценарием диалога, который
представлен в виде меню – диалог инициализируется программой; пользователю
предлагается выбор альтернативы функций обработки из фиксированного перечня.
Пользователю предлагается выбор из пяти пунктов меню: заказ, инструменты, база
данных, помощь, справка. Меню имеет иерархический вид, так как при выборе
одного пункта меню появляется подменю и так далее;
Пункт меню «Заказ»
представляет пользователю возможность работать с отчетами: создать новый, открыть
старый, сохранить и вывести на печать, а также позволяет изменять настройки
программы в подменю «параметры».
Пункт меню «Данные»
содержит подпункты «Заказы», «Отчеты». При выборе одного из пунктов
пользователю предоставляется возможность работы с файлами заказов или отчетов
сохраненных в каталоге «БД».
Пункт меню «Инструменты»
содержит подпункты: «Шаблоны», «Расчет стоимости» и «Конвертор валют». При
выборе пункта меню «Шаблоны», на экране появляется окно позволяющее
пользователю создавать эскизы окон для дальнейшей работы с ними. При выборе
пункта меню «Расчет стоимости», на экране появляется окно позволяющее
пользователю производить расчет стоимости пластиковых оконных конструкций. При
выборе пункта меню «Конвертор валют», на экране появляется окно позволяющее
пользователю конвертировать, полученный при расчете стоимости, результат из
одной валюты в другую.
Пункт меню «Помощь»
содержит подменю: «О программе» - информация о программе; «Об авторе» -
информация об авторе.
Пункт меню «Справка» -
полная информация по работе с программой.
2.4 Эскиз и спецификация
типовых объектов управления графического
интерфейса
Эскиз графического
интерфейса пользователя представлен на рисунке 2.

Рисунок 3 - Графический
интерфейс пользователя
Для создания диалогового
окна использовались объекты:
Полоса меню (MainMenu)-
предлагает выбор основных функций обработки информации, представленные в
программе, например, «Инструменты»;
Метка (Label)
постоянный текст, не подлежащий изменению при работе пользователя с экранной
формой, например , «Ф.И.О. Замерщика»;
Стандартная кнопка
(Button) – служит для выдачи команд на выполнение определённых функциональных
действий.
Командная кнопка (BitBtn)
- служит для выдачи команд на выполнение определённых функциональных действий,
на поверхности кнопки расположен рисунок, например, «Готово»;
Односторонний редактор
(Edit) – для отображения и изменения текста, например, при добавлении текста в
файл;
Многострочный
редактор(Memo)- для ввода большого объёма текстовой информации;
RadioGroup – группа
зависимых переключателей, содержит специальные свойства для обслуживания
нескольких связанных зависимых переключателей.
Memo – многострочный текстовый
редактор, используется для ввода и отображения многострочного текста.
MainMenu – главное меню
программы, позволяет создавать и обслуживать сложные иерархические меню.
Image – рисунок,
предназначен для отображения рисунков, в том числе пиктограмм.
StringGrid – таблица
строк, обладает мощными возможностями для представления текстовой информации в
табличном виде.
PrintDialog – печать,
реализует стандартное диалоговое окно выбора параметров для печати документов.
Combobox– всплывающий
список, содержит список альтернативных значений для выбора.
ScrollBar- полоса
прокрутки, служит для прокрутки списков и элементов, выходящих за определённую
ограниченную область.
3 Руководство
программиста
3.1 Схема взаимодействия
модулей
Схема взаимодействия
модулей представлена на рисунке 4.
Рисунок 4 - Схема
взаимодействия модулей
3.2 Описание модулей
Программа включает в себя
22 модуля, каждый из которых выполняет определённые функции:
Unit1 - главный модуль
программы, при вызове модуля к исполнению на экране появиться главное окно
программы, содержащее меню и панель управления;
Unit2 – вызывается из
меню «Заказы - Параметры», осуществляет появление на экран окна «Параметры»,
для изменения настроек программы.
Unit3 – вызывается из
меню «Помощь – О программе», осуществляет появление на экран окна «О
программе», для просмотра сведений о программе;
Unit4 – вызывается из
меню «Помощь – Об авторе», осуществляет появление на экран окна «Об авторе»,
для просмотра сведений об авторе;
Unit5 – вызывается из
меню, осуществляет появление на экран окна «Справка», окно содержит информацию
по работе с программой;
Unit6 –осуществляет создание
эскизов пластиковых окон;
Unit7 – вызывается при
выборе пункта меню «Инструменты», осуществляет появление на экран окна «Расчет
стоимости. Окно позволяет производить подготовку всех параметров перед расчетом;
Unit8 – вызывается окна
«Расчет стоимости», осуществляет появление на экран окна «Расчет», и позволяет
производить расчет пластиковых оконных конструкций;
Unit9 – вызывается из
меню, осуществляет появление на экран окна «Конвертор валют», для
конвертирования результатов расчетов из одной валюты в другую;
Unit10 – вызывается из
меню, осуществляет появление на экран окна «Отчет», для просмотра, печати и записи
данных в файл;
Unit11 – вызывается из
меню, осуществляет появление на экран окна «Новый заказ», ввод количества
изделий;
Unit12 – вызывается при
выборе пункта меню «База данных - Заказы», осуществляет появление на экран окна
«Заказы». Окно позволяет производить операции над файлами заказов;
Unit13 – вызывается из окно
«Параметры», осуществляет появление на экран окна «Технические допуски», окно позволяет
изменять технические характеристики оконных модулей;
Unit14 – вызывается из окна
«Расчет», осуществляет расчет скидки на стоимость оконных конструкций;
Unit15 – вызывается из
окна «Расчет», осуществляет расчет стоимости ламинирования оконных конструкций;
Unit16 – вызывается из
окна «Новый заказ», осуществляет ввод данных о заказчике и заказе;
Unit17 – вызывается из
окна «Расчет», осуществляет расчет стоимости тонировки оконных конструкций;
Unit18 – вызывается из
окна «Расчет», осуществляет расчет стоимости подоконников;
Unit19 – вызывается из
окна «Расчет», осуществляет расчет стоимости профиля;
Unit20 – вызывается из
окна «Расчет», осуществляет расчет стоимости импоста;
Unit21 – вызывается из
окна «Параметры», позволяет изменять цены на подоконники;
Unit22 – вызывается из
окна «Параметры», позволяет изменять цены на тонировку;
3. 3 Настройка и проверка
программы
У разработанного
программного продукта имеется возможность изменять цены на оконные конструкции
и дополнительную комплектацию, а также максимальные и минимальные размеры
оконных модулей, поэтому перед началом работы с программой необходимо ввести
все параметры. Если этого не сделать, то расчет стоимости будет произведен по
стандартным параметрам, что может привести к неверным результатам. Настройку
параметров можно произвести, выбрав в меню «Заказ» - «Параметры».
3. 3. 1 Тестирование
программного продукта. Способы тестирования
Тестирование представляет
собой деятельность по проверки программного кода и документации. Она должна
заранее планироваться и систематически проводиться специально назначенным
независимым тестировщиком. Работа тестировщика начинается до утверждения
спецификаций требований. Он проверяет требования к программному продукту на
полноту и возможность тестирования, определяет методы тестирования.
Для каждого программного
изделия должен существовать набор тестов, проверяющий его корректность.
Существует несколько уровней тестирования, позволяющих полностью проверить
программное изделие. Каждый уровень имеет свои цели и компоненты. Можно
выделить пять уровней тестирования: модульное; интеграционное; системное;
выходное; приёмочное.
Модульное тестирование
представляет собой процесс проверки отдельных программных процедур и
подпрограмм, входящих в состав программ или программных систем. Модульное
тестирование производится непосредственным разработчиком и позволяет проверять
все внутренние структуры и потоки данных в каждом модуле. Этот вид тестирования
является частью разработки.
Интеграционное
тестирование проводится для проверки совместной работы отдельных модулей и
предшествует тестированию всей системы как единого целого. В ходе
интеграционного тестирования проверяются связи между модулями, их совместимость
и функциональность. Оно осуществляется независимым тестировщиком и входит в
состав этапа тестирования.
Системное тестирование
предназначено для проверки программной системы в целом, её организации и
функционирования на соответствие спецификациям требований заказчика. Его
проводит независимый тестировщик после успешного завершения интеграционного
тестирования.
Выходное тестирование
завершающий этап тестирования, на котором проверяется готовность ПП к поставке
заказчику. Данный вид тестирования проводит независимый тестировщик.
Приёмочное тестирование
тестирование проводится организацией, отвечающей за инсталляцию, сопровождение
программной системы и обучение конечного пользователя.
При разработке
программного продукта я использовал модульное тестирование, пошаговое
выполнение и отладку. В ходе тестирования в программе были выявлены такие
места, где действия пользователей надо дополнительно проконтролировать, чтобы
дальнейшая работа программы проходила правильно.
В таких местах программы
предусмотрены такие проверки как:
- на корректность ввода
данных;
- на наличие необходимых
файлов для работы программы;
- на правильные и
последовательные выполнения действий в работе с программой;
- на наличие в
операционной системе Microsoft Word.
3. 3. 2 Сообщение
системному программисту
В разработанном
программном продукте необходимо учитывать особенность структуры файла, в
который записываются данные о ценах, также необходимо учитывать операции с
файлом структуры базы данных, предусмотреть ошибки ввода/вывода.
Так как в программном
продукте происходит непосредственная запись в файл данных необходимо учитывать
программные ошибки которые существуют двух типов. Программная ошибка
расхождение между программой и её спецификацией, причём тогда и только тогда,
когда спецификация существует и она правильна. Программная ошибка – ситуация,
когда программа не делает того, чего пользователь от неё вполне обоснованно
ожидает.
Сбои в работе программы
могут происходить из-за нехватки памяти или отсутствия других необходимых
системных ресурсов. У каждой программы свои пределы, программа может не
справляться с повышенными нагрузками, например со слишком большими объёмами
данных.
Так в разработанном
программном продукте присутствуют следующие ограничения: каждый файл заказа в
среднем имеет размер 15 килобайт, поэтому программа ограничивается только
размером жесткого диски и объемом оперативной памяти, т.к. при расчете
стоимости программе необходимо в среднем 70 мегабайт памяти.
Для установки программы,
необходимо запустить самораспаковывающийся архив, выбрать папку в которую нужно
установить программу на жестком диске, и архив самостоятельно скопирует все
файлы и создаст ярлык на рабочем столе.
Если скопировать
программу на какое-либо другое устройство или диск программа может работать
некорректно.
4 Руководство оператора
Разработанный программный
продукт снабжён диалоговыми окнами и предупреждающими сообщениями, которые
помогут оператору легко эксплуатировать программу.
4. 1 Выполнение программы
Во время выполнения
программы основные операции ввода снабжены сообщениями и предупреждениями. В
главном окне программы видно текущей номер заказа, также все элементы имеют
всплывающие подсказки. Главное окно показывает режим редактирования, время,
дату, имеет панель для ввода данных о заказчике и заказе.
В программе каждая
операция с файлами – удаление, редактирование, добавление заказов снабжена
дополнительным диалоговым окном.
Дополнительнительная
информация по выполнению программного продукта содержится в пункте 2.3
Диологовый режим.
4. 2 Сообщение оператору
При работе программы, то
есть непосредственном вводе данных и последующей записи регистрационных данных
в файл появляется диалоговое окно изображенное на рисунке 5.

Рисунок 5 – Диалоговое
окно
Если запись в файл
происходит без основных данных то, будет выведено диалоговое окно изображенное
на рисунке 6.

Рисунок 6 – Диалоговое
окно
Если не введен ни один
номер заказчика то появится диалоговое окно изображенное на рисунке 7.

Рисунок 7 −
Диалоговое окно
Если попытаться
произвести расчет, не загрузив данные о цене из файла, то появится диалоговое
окно изображенное на рисунке 8.
Рисунок 8 −
Диалоговое окно
Заключение
Результатом курсового
проекта является программа, выполненная в среде Delphi, с использованием
дополнительных компонентов, и разработанная по всем правилам разработки
программного продукта.
Программа предусматривает
выполнение строго ограниченных функций, необходимых для сотрудников фирмы.
В программе использованы
и закреплены практически все навыки программирования в среде Delphi 7.
За время работы над
работой я закрепил навыки работы с интегрированной средой программирования
Delphi 7.0, а так же работу с нестандартными компонентами. При разработке
данной программы мне пришлось столкнуться с множеством проблем. Но благодаря
использованию различной литературы, а также ранее полученного опыта удалось обойти
или решить большинство этих проблем. Накопленный мной опыт, несомненно,
пригодится в будущем, при разработке программ.
Список использованных
источников
Попов В. М.
Программирование в T. Pascal . − М.: Просвещение, 1997.
Макарова И. Р.
Информатика. − М.: Финансы и статистика, 2003.
Рудаков А. В. Технология
разработки программных продуктов. − М.: Академия, 2004.
Хомоненко А. Гофман В.
Delphi 7 в подлиннике. − М.: Просвещение, 2004.
Никифоров В. В. Основы
разработки программных продуктов. − М.: Просвещение, 2004.
Марченко А. И.
Программирование в среде T. Pascal. − Киев: Юниор, 1997.
Немнюгин С. А.
Программирование на языке высокого уровня. − М.: Просвещение, 1996.
Вендров А. М.
Проектирование программного обеспечения экономических информационных систем. −
М.: Финансы и статистика, 2000. − 352 с.
Соммервил И. Инженерия
программного обеспечения. − М.: СПб.: Киев: Изд. Дом «Вильямс», 2002. −
624 с.
Приложение А
Входные документы
Приложение Б
Текст программы
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas'
{Form2},
Unit3 in 'Unit3.pas'
{Form3},
Unit4 in 'Unit4.pas'
{Form4},
Unit6 in 'Unit6.pas'
{Form6},
Unit7 in 'Unit7.pas'
{Form7},
Unit12 in 'Unit12.pas'
{Form12},
Unit13 in 'Unit13.pas'
{Form13},
Unit11 in 'Unit11.pas'
{Form11},
Unit16 in 'Unit16.pas'
{Form16},
Unit8 in 'Unit8.pas'
{Form8},
Unit9 in 'Unit9.pas'
{Form9},
Unit5 in 'Unit5.pas'
{Form5},
Unit15 in 'Unit15.pas'
{Form15},
Unit17 in 'Unit17.pas'
{Form17},
Unit18 in 'Unit18.pas'
{Form18},
Unit19 in 'Unit19.pas'
{Form19},
Unit20 in 'Unit20.pas'
{Form20},
Unit21 in 'Unit21.pas'
{Form21},
Unit22 in 'Unit22.pas'
{Form22},
Unit10 in 'Unit10.pas'
{Form10},
Unit14 in 'Unit14.pas'
{Form14};
{$R *.res}
begin
Application.Initialize;
Application.Title:= 'УралСтройМонтаж';
Application.CreateForm(TForm1,
Form1);
Application.CreateForm(TForm2,
Form2);
Application.CreateForm(TForm3,
Form3);
Application.CreateForm(TForm4,
Form4);
Application.CreateForm(TForm6,
Form6);
Application.CreateForm(TForm7,
Form7);
Application.CreateForm(TForm12,
Form12);
Application.CreateForm(TForm13,
Form13);
Application.CreateForm(TForm11,
Form11);
Application.CreateForm(TForm16,
Form16);
Application.CreateForm(TForm8,
Form8);
Application.CreateForm(TForm9,
Form9);
Application.CreateForm(TForm5,
Form5);
Application.CreateForm(TForm15,
Form15);
Application.CreateForm(TForm17,
Form17);
Application.CreateForm(TForm18,
Form18);
Application.CreateForm(TForm19,
Form19);
Application.CreateForm(TForm20,
Form20);
Application.CreateForm(TForm21,
Form21);
Application.CreateForm(TForm22,
Form22);
Application.CreateForm(TForm10,
Form10);
Application.CreateForm(TForm14,
Form14);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus,
ExtCtrls, StdCtrls, XPMan, ComCtrls, Unit9, Mask,Buttons, jpeg ,Unit11,
syncobjs,ImgList;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;N2:
TMenuItem;
N19: TMenuItem;N18:
TMenuItem;
N4: TMenuItem;N3:
TMenuItem;
N5: TMenuItem;N6:
TMenuItem;
N7: TMenuItem;N8:
TMenuItem;
N9: TMenuItem;N10:
TMenuItem;
N12: TMenuItem;N13:
TMenuItem;
N15: TMenuItem;N16:
TMenuItem;
N17: TMenuItem;Panel1:
TPanel;
Label4: TLabel; Label1:
TLabel;
Edit1: TEdit; Label2:
TLabel;Edit2: TEdit;
Label3:TLabel;Label6:TLabel;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog; PrintDialog1:
TPrintDialog;
XPManifest1: TXPManifest; Memo1:
TMemo;
N20: TMenuItem;
ControlBar1: TControlBar;
FontDialog1: TFontDialog;
SpeedButton4: TSpeedButton;
SpeedButton1:
TSpeedButton; SpeedButton2: TSpeedButton;
SpeedButton3:
TSpeedButton; SpeedButton5: TSpeedButton;
SpeedButton6:
TSpeedButton; SpeedButton7: TSpeedButton;
SpeedButton8:
TSpeedButton; SpeedButton9: TSpeedButton;
DateTimePicker1:
TDateTimePicker;Timer1: TTimer;N11: TMenuItem;
Image1: TImage; Image2:
TImage;Label9: TLabel;SpeedButton13: TSpeedButton;
SpeedButton14:
TSpeedButton;Label8: TLabel; MaskEdit3: TMaskEdit;
Label7: TLabel; MaskEdit2:
TMaskEdit;Label10: TLabel;
Label5: TLabel; Label12:
TLabel; Memo4: TMemo; Timer2: TTimer;
RichEdit1: TRichEdit;
SpeedButton11: TSpeedButton; Label11: TLabel;
N14: TMenuItem; procedure
N5Click(Sender: TObject);
procedure N16Click(Sender:
TObject); procedure N17Click(Sender: TObject);
procedure N7Click(Sender:
TObject); procedure N9Click(Sender: TObject);
procedure N10Click(Sender:
TObject); procedure N3Click(Sender: TObject);
procedure N18Click(Sender:
TObject); procedure N19Click(Sender: TObject);
procedure N11Click(Sender:
TObject); procedure N13Click(Sender: TObject);
procedure N2Click(Sender:
TObject); procedure SpeedButton3Click(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton4Click(Sender: TObject);
procedure
SpeedButton7Click(Sender: TObject);
procedure
SpeedButton6Click(Sender: TObject);
procedure
SpeedButton5Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure Timer1Timer(Sender:
TObject);
procedure
SpeedButton11Click(Sender: TObject);
procedure N20Click(Sender:
TObject); procedure FormCreate(Sender: TObject);
procedure
SpeedButton13Click(Sender: TObject);
procedure
SpeedButton9Click(Sender: TObject);
procedure Edit1KeyPress(Sender:
TObject; var Key: Char);
procedure
Edit2KeyPress(Sender: TObject; var Key: Char);
procedure
SpeedButton8Click(Sender: TObject);
procedure
SpeedButton14Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CheckEvent: TEvent; Form1:
TForm1; dir:string; kolok:integer;
prof,spak,mon,got:string;fiozam,fiozak,adres,data,itog,domtel,sottel:string;
implementation
uses Unit2, Unit3, Unit4,
Unit5, Unit6, Unit7, Unit8, Unit10, Unit12,
Unit15;
{$R *.dfm}
procedure TForm1.N5Click(Sender:
TObject);
begin form2.Showmodal end;
procedure
TForm1.N16Click(Sender: TObject);
begin form3.Showmodal end;
procedure
TForm1.N17Click(Sender: TObject);
begin form4.Showmodal end;
procedure
TForm1.N7Click(Sender: TObject);
var dlg:Word; begin
dlg:=MessageDlg('Вы
точно хотите выйти???',mtConfirmation,mbYesNoCancel,0);
if dlg = mrYes then close;
end;
procedure
TForm1.N9Click(Sender: TObject);
begin form6.Showmodal; end;
procedure
TForm1.N10Click(Sender: TObject);
begin form7.Showmodal; end;
procedure
TForm1.N3Click(Sender: TObject);
begin Form1.PrintDialog1.Execute;
end;
procedure
TForm1.N18Click(Sender: TObject);
begin if
Form1.SaveDialog1.Execute then
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm1.N19Click(Sender:
TObject);
begin if
form1.OpenDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure
TForm1.N11Click(Sender: TObject);
begin form9.Showmodal; end;
procedure
TForm1.N13Click(Sender: TObject);
begin form12.Showmodal; end;
procedure
TForm1.N2Click(Sender: TObject);
begin form11.Show; end;
procedure
TForm1.SpeedButton3Click(Sender: TObject);
begin RichEdit1.Paragraph.Alignment:=taLeftJustify;
end;
procedure
TForm1.SpeedButton1Click(Sender: TObject);
begin RichEdit1.Paragraph.Alignment:=taRightJustify;
end;
procedure
TForm1.SpeedButton4Click(Sender: TObject);
begin if
FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
RichEdit1.SetFocus; end;
procedure
TForm1.SpeedButton7Click(Sender: TObject);
begin if
Form1.SaveDialog1.Execute then
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure
TForm1.SpeedButton6Click(Sender: TObject);
begin if
form1.OpenDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure
TForm1.SpeedButton5Click(Sender: TObject);
var f: Integer;
begin for f := 0 to
ComponentCount - 1 do begin
if (Components[f] is
TEdit) then (Components[f] as TEdit).Text := '';
if (Components[f] is
TMaskEdit) then (Components[f] as TMaskEdit).Text := '';
if (Components[f] is
TMemo) then (Components[f] as TMemo).Text := '';end;
RichEdit1.Clear;
prof:='';spak:='';mon:='';got:='';
got:='';adres:='';fiozam:='';fiozak:='';
Showmessage('Введите все данные по
заказу!'); end;
procedure TForm1.SpeedButton2Click(Sender:
TObject);
begin RichEdit1.Paragraph.Alignment:=taCenter;end;
procedure
TForm1.Timer1Timer(Sender: TObject);
begin Label5.Caption:=
'Дата ' + dateToStr(date);
Label11.Caption:='Номер заказа:
'+ intToStr(nzak);
Label9.Caption:= 'Время ' + TimeToStr(Time); end;
procedure
TForm1.SpeedButton11Click(Sender: TObject);
begin if
(Edit1.Text='')or(Edit2.Text='')or(Memo1.Text='')
then showmessage('Не введены
обязательные параметры!')
else if (MaskEdit3.Text='
- - ') and (MaskEdit2.Text='(8) ')then
showmessage('Введите хотя бы один
номер телефона!') else
begin fiozam:=Edit1.Text; fiozak:=Edit2.Text;
adres:=Memo1.Text; domtel:=MaskEdit3.Text;
sottel:=MaskEdit2.Text; data:=datetostr(DateTimePicker1.Date);
got:=memo4.Text; Form7.Showmodal;
end; end;
procedure
TForm1.N20Click(Sender: TObject);
begin form5.Showmodal; end;
procedure
TForm1.FormCreate(Sender: TObject);
var f:textfile;s:string;
begin CheckEvent :=
TEvent.Create(nil, false, true, 'MYPROGRAM_CHECKEXIST');
if CheckEvent.WaitFor(10)
<> wrSignaled then
begin Showmessage('Программа уже запущена!');
Self.Close; halt; end;
DateTimePicker1.Date:=Date;
odn:='';
dir:=ExtractFilePath(Application.ExeName);
AssignFile(f,dir+'\nzak.txt');
Reset(f); Read(f,s); nzak:=StrToInt(s);
CloseFile(f); end;
function
Search_And_Replace(RichEdit: TRichEdit;
SearchText, ReplaceText:
string): Boolean;
var startpos, Position,
endpos: integer;
begin startpos := 0;
with RichEdit do begin
endpos := Length(RichEdit.Text);
Lines.BeginUpdate;
while FindText(SearchText,
startpos, endpos, [stMatchCase])<>-1 do
begin endpos :=
Length(RichEdit.Text) - startpos;
Position :=
FindText(SearchText, startpos, endpos, [stMatchCase]);
Inc(startpos,
Length(SearchText)); SetFocus; SelStart := Position;
SelLength :=
Length(SearchText); richedit.clearselection;
SelText := ReplaceText;
end;
Lines.EndUpdate; end; end;
procedure
TForm1.SpeedButton13Click(Sender: TObject);
Var b,a:string; begin
if
(fiozam='')or(fiozak='')or(adres='')
then showmessage('Не введены
обязательные параметры!') else
if prof='' then Showmessage('Введите
информацию о заказе!')else
begin RichEdit1.Lines.LoadFromFile(dir+'\Отчеты\ЕвроДом.rtf');
Search_And_Replace(Richedit1,
'№1',prof );
Search_And_Replace(Richedit1,
'№2',spak);
Search_And_Replace(Richedit1,
'№4',mon);
Search_And_Replace(Richedit1,
'№3',got );
if
(SOB='')and(Lam='')and(So9='') then b:=''
else if
(SOB='')or(Lam='')or(So9='') then begin
if SOB='' then b:=Lam+';
'+So9+'; '+ton;
if Lam='' then b:=SOB+';
'+So9+'; '+ton;
if So9='' then b:=SOB+';
'+Lam+'; '+ton;
if (Lam='')and(So9='')
then b:=SOB+'; '+ton end
else b:=SOB+'; '+Lam+';
'+So9+'; '+ton;
Search_And_Replace(Richedit1,
'#B',b);
a:=MarkP+'('+RazPod+')'+Podsen+'у.е';
if a='()у.е' then a:='';
Search_And_Replace(Richedit1,
'#A',a );
if sottel='(8)
' then
Search_And_Replace(Richedit1,
'#6',' ')
else
Search_And_Replace(Richedit1,
'#6',sottel);
Search_And_Replace(Richedit1,
'#C',itog);
Search_And_Replace(Richedit1,
'#5',domtel);
Search_And_Replace(Richedit1,
'#1',fiozam );
Search_And_Replace(Richedit1,
'#2',data);
Search_And_Replace(Richedit1,
'#3',fiozak );
Search_And_Replace(Richedit1,
'#4',adres );
end; end;
procedure
TForm1.SpeedButton9Click(Sender: TObject);
begin
RichEdit1.Perform(EM_UNDO,
0, 0);end;
procedure
TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
vrLength, vrSelStart:
byte;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
//определяем длину текста
vrSelStart := SelStart; //определяем
положение курсора
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46:
else
Key := #0; //"погасить" все
остальные клавиши
end;end;
procedure
TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
vrLength, vrSelStart:
byte;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrSelStart := SelStart;
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46:
else
Key := #0; //"погасить" все
остальные клавиши end;end;
procedure
TForm1.SpeedButton8Click(Sender: TObject);
begin RichEdit1.Print('Печать отчета');
end;
procedure
TForm1.SpeedButton14Click(Sender: TObject);
begin if
RichEdit1.Text<>'' then begin
form10.qrimage1.Picture.LoadFromFile(dir+'\temp\'+'1.bmp');
form10.qrimage2.Picture.LoadFromFile(dir+'\temp\'+'2.bmp');
form10.qrimage3.Picture.LoadFromFile(dir+'\temp\'+'3.bmp');
form10.qrimage4.Picture.LoadFromFile(dir+'\temp\'+'4.bmp');
form10.qrimage5.Picture.LoadFromFile(dir+'\temp\'+'5.bmp');
form10.qrimage6.Picture.LoadFromFile(dir+'\temp\'+'6.bmp');
form10.Show; end
else Showmessage('Сначала создайте отчёт!');end;end.
unit Unit2;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, jpeg,Unit1, ExtCtrls;
type
TForm2 = class(TForm)
Image1: TImage;GroupBox1:
TGroupBox;Label1: TLabel;
Label2: TLabel; Label3:
TLabel; Label4: TLabel;
Label5: TLabel; Label6:
TLabel; Label7: TLabel;
Label8: TLabel; Label9: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit; SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit6: TSpinEdit; SpinEdit7: TSpinEdit;
SpinEdit8: TSpinEdit;
SpinEdit9: TSpinEdit; SpinEdit10: TSpinEdit;
SpinEdit11: TSpinEdit; SpinEdit12:
TSpinEdit; GroupBox2: TGroupBox;
Label10: TLabel; Label11:
TLabel; Label12: TLabel; Label13: TLabel;
Label14: TLabel; Label15:
TLabel;Label16: TLabel; Label17: TLabel;
Label18: TLabel;
SpinEdit13: TSpinEdit; SpinEdit14: TSpinEdit;
SpinEdit15: TSpinEdit; SpinEdit16:
TSpinEdit; SpinEdit17: TSpinEdit;
SpinEdit18: TSpinEdit; SpinEdit19:
TSpinEdit; SpinEdit20: TSpinEdit;
SpinEdit21: TSpinEdit;
SpinEdit22: TSpinEdit; SpinEdit23: TSpinEdit;
SpinEdit24: TSpinEdit;
SpeedButton4: TSpeedButton; SpeedButton3: TSpeedButton;
SpeedButton2:
TSpeedButton; SpeedButton1: TSpeedButton;
SpeedButton6:
TSpeedButton; SpeedButton7: TSpeedButton;
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton3Click(Sender: TObject);
procedure
SpeedButton4Click(Sender: TObject);
procedure
SpeedButton6Click(Sender: TObject);
procedure
SpeedButton7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form2: TForm2;
implementation
uses Unit13, Unit14,
Unit21, Unit22;
{$R *.dfm}
procedure
TForm2.SpeedButton1Click(Sender: TObject);
begin close; end;
procedure
TForm2.SpeedButton2Click(Sender: TObject);
Var s:string;
f:textfile;
begin
{$I-}
AssignFile(f,dir+'\Цены\Окна');
{$I+}
If IOResult=0 then begin
s:=dir+'\Цены\Окна';
Rewrite(f,s+'\Exprof58mm24.dat');
Writeln(f,SpinEdit1.Value);
Writeln(f,SpinEdit2.Value);
Writeln(f,SpinEdit3.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof58mm32.dat');
Writeln(f,SpinEdit4.Value);
Writeln(f,SpinEdit5.Value);
Writeln(f,SpinEdit6.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof101mm24.dat');
Writeln(f,SpinEdit7.Value);
Writeln(f,SpinEdit8.Value);
Writeln(f,SpinEdit9.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof101mm32.dat');
Writeln(f,SpinEdit10.Value);
Writeln(f,SpinEdit11.Value);
Writeln(f,SpinEdit12.Value);
CloseFile(f);
end else Exit;
{$I-}
AssignFile(f,dir+'\Цены\Двери');
{$I+}
If IOResult=0 then begin
s:=dir+'\Цены\Двери';
Rewrite(f,s+'\Exprof58mm24.dat');
Writeln(f,SpinEdit13.Value);
Writeln(f,SpinEdit14.Value);
Writeln(f,SpinEdit15.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof58mm32.dat');
Writeln(f,SpinEdit16.Value);
Writeln(f,SpinEdit17.Value);
Writeln(f,SpinEdit18.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof101mm24.dat');
Writeln(f,SpinEdit19.Value);
Writeln(f,SpinEdit20.Value);
Writeln(f,SpinEdit21.Value);
CloseFile(f);
Rewrite(f,s+'\Exprof101mm32.dat');
Writeln(f,SpinEdit22.Value);
Writeln(f,SpinEdit23.Value);
Writeln(f,SpinEdit24.Value);
CloseFile(f); end else
Exit;
ShowMessage('Данные сохранены
успешно!'); end;
procedure
TForm2.SpeedButton3Click(Sender: TObject);
begin
SpinEdit1.Value:=58; SpinEdit2.Value:=167;
SpinEdit3.Value:=172; SpinEdit4.Value:=67;
SpinEdit5.Value:=175; SpinEdit6.Value:=181;
SpinEdit7.Value:=68; SpinEdit8.Value:=195;
SpinEdit9.Value:=201; SpinEdit10.Value:=79;
SpinEdit11.Value:=204; SpinEdit12.Value:=212;
SpinEdit13.Value:=152; SpinEdit14.Value:=157;
SpinEdit15.Value:=176; SpinEdit16.Value:=165;
SpinEdit17.Value:=170; SpinEdit18.Value:=187;
SpinEdit19.Value:=180; SpinEdit20.Value:=188;
SpinEdit21.Value:=0; SpinEdit22.Value:=194;
SpinEdit23.Value:=200;SpinEdit24.Value:=0;
end;
procedure
TForm2.SpeedButton4Click(Sender: TObject);
begin form13.show; end;
procedure
TForm2.SpeedButton6Click(Sender: TObject);
begin form21.Show; end;
procedure
TForm2.SpeedButton7Click(Sender: TObject);
begin form22.Show; end; end.
unit Unit3;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
Buttons, jpeg, ExtCtrls;
type
TForm3 = class(TForm)
Image1: TImage; Label1:
TLabel; Label2: TLabel; Label3: TLabel;
Label4: TLabel; Label5:
TLabel; SpeedButton1: TSpeedButton;
procedure
BitBtn1Click(Sender: TObject);
procedure SpeedButton1Click(Sender:
TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form3: TForm3;
implementation
{$R *.dfm}
procedure
TForm3.BitBtn1Click(Sender: TObject);
begin close end;
procedure
TForm3.SpeedButton1Click(Sender: TObject);
begin close; end; end.
unit Unit4;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
Buttons, jpeg, ExtCtrls;
type
TForm4 = class(TForm)
Image1: TImage; Label1:
TLabel; Label3: TLabel; Label2: TLabel;
Label4: TLabel; Label5:
TLabel; SpeedButton1: TSpeedButton;
procedure
SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form4: TForm4;
implementation
{$R *.dfm}
procedure
TForm4.SpeedButton1Click(Sender: TObject);
begin close; end; end.
unit Unit5;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
ComCtrls, ExtCtrls, jpeg,unit1, Buttons;
type
TForm5 = class(TForm)
TreeView1: TTreeView;
Timer1: TTimer;RichEdit1: TRichEdit;Image1: TImage;
Label3: TLabel; Label2:
TLabel; Label1: TLabel; Bevel1: TBevel;Bevel2: TBevel;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
procedure
Timer1Timer(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.Timer1Timer(Sender:
TObject);
begin
if
TreeView1.Selected<>nil then begin
label3.Caption:=TreeView1.Selected.Text;
if
TreeView1.Selected.Text='Решение задач' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Основные задачи.rtf');
if
TreeView1.Selected.Text='УралСтройМантаж' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\УралСтройМонтаж.rtf');
if
TreeView1.Selected.Text='Описание интерфейса' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Интерфейс.rtf');
if
TreeView1.Selected.Text='Расчет стоимости' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Расчет.rtf');
if
TreeView1.Selected.Text='Системные требования' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Системные требования.rtf');
if TreeView1.Selected.Text='Создание шаблонов' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Шаблон.rtf');
if
TreeView1.Selected.Text='Установка цен' then
RichEdit1.Lines.LoadFromFile(dir+'\Справка\Цены.rtf');end;end;
procedure
TForm5.SpeedButton2Click(Sender: TObject);
begin Close; end; end.
unit Unit6;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,
StdCtrls, unit1,Buttons, ComCtrls,Unit7, jpeg ;
type
TForm6 = class(TForm)
Panel1: TPanel;
SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton;
SpeedButton3:
TSpeedButton; SpeedButton5: TSpeedButton;
SpeedButton6:
TSpeedButton; SpeedButton4: TSpeedButton;
SpeedButton14:
TSpeedButton; SpeedButton15: TSpeedButton;
SpeedButton16:
TSpeedButton; Panel2: TPanel;
UpDown2: TUpDown;UpDown1:
TUpDown; SpeedButton11: TSpeedButton;
Image1: TImage;
SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton;
SpeedButton9:
TSpeedButton; procedure SpeedButton1Click(Sender: TObject);
procedure
SpeedButton16Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton14Click(Sender: TObject);
procedure
SpeedButton15Click(Sender: TObject);
procedure
SpeedButton3Click(Sender: TObject);
procedure
SpeedButton4Click(Sender: TObject);
procedure
SpeedButton6Click(Sender: TObject);
procedure
SpeedButton5Click(Sender: TObject);
procedure
UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure
UpDown2Click(Sender: TObject; Button: TUDBtnType);
procedure
Panel2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer);
procedure
SpeedButton11Click(Sender: TObject);
procedure
SpeedButton9Click(Sender: TObject);
procedure
SpeedButton8Click(Sender: TObject);
private
procedure CmFocusChanged
(var Msg: TCmFocusChanged);
message cm_FocusChanged;
{ Private declarations }
public
{ Public declarations }
end;
var Msg1:
TCmFocusChanged; Form6: TForm6;c:string;
implementation
{$R *.dfm}
procedure
TForm6.SpeedButton1Click(Sender: TObject);
begin
b1 :=
TBitBtn.Create(Self);
nam:=nam+'#Глухой';
with b1 do begin
b1.Hint:='1';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\глухой.bmp');end;end;
procedure
TForm6.CmFocusChanged (var Msg: TCmFocusChanged);
begin Msg1:=Msg; end;
procedure
TForm6.SpeedButton2Click(Sender: TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный.bmp');end;end;
procedure
TForm6.SpeedButton14Click(Sender: TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный1.bmp');end;end;
procedure
TForm6.SpeedButton15Click(Sender: TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный1.bmp');end;end;
procedure
TForm6.SpeedButton16Click(Sender: TObject);
begin
nam:=nam+'#Откидной';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='3';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\откидной.bmp');
Parent := Panel2;end;end;
procedure
TForm6.SpeedButton3Click(Sender: TObject);
begin
nam:=nam+'#Откидной';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='3';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\откидной.bmp');
Parent := Panel2;end;end;
procedure
TForm6.SpeedButton4Click(Sender: TObject);
begin
nam:=nam+'#балкон1';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='4';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\балкон1.bmp');
Parent := Panel2;end;end;
procedure
TForm6.SpeedButton6Click(Sender: TObject);
begin
nam:=nam+'#Вход';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='6';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\вход.bmp');
Parent := Panel2;end;end;
procedure
TForm6.SpeedButton5Click(Sender: TObject);
begin
nam:=nam+'#Балкон2';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='5';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\балкон2.bmp');
Parent := Panel2;end;end;
procedure
TForm6.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.Width:=UpDown1.Position*3;
end;
procedure
TForm6.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.Height:=UpDown2.Position*3;
end;
procedure
TForm6.Panel2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer);
const
SC_DragMove = $F012; { a
magic number }
begin
ReleaseCapture;
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.perform(WM_SysCommand,
SC_DragMove, 0);
end;
procedure
TForm6.SpeedButton11Click(Sender: TObject);
Var p:integer;
begin
if
Msg1.Sender.ClassName='TBitBtn' then begin
if msg1.Sender.Hint='1'
then begin p:=pos('#Глухой',nam);delete(nam,p,7);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='2'
then begin p:=pos('#Поворотный',nam);delete(nam,p,11);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='3'
then begin p:=pos('#Откидной',nam);delete(nam,p,9);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='4'
then begin p:=pos('#балкон1',nam);delete(nam,p,8);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='5'
then begin p:=pos('#Балкон2',nam);delete(nam,p,8);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='6'
then begin p:=pos('#Вход',nam);delete(nam,p,5);msg1.Sender.Destroy;end;end;end;
procedure
TForm6.SpeedButton9Click(Sender: TObject);
var
B: TBitmap;
srcRect,dstRect: TRect;
begin
B:=TBitmap.Create;
with dstRect do begin
Left:=0;
Top:=0;
Right:=Panel2.Width+1;
Bottom:=Panel2.Height+1;
end;
with srcRect do begin
Left:=Panel2.Left+15;
Right:=Panel2.Left+Panel2.Width+12;
Top:=Panel2.Top;
Bottom:=Panel2.Top+Panel2.Height+12;
end;
B.Width:=Panel2.Width;
B.Height:=Panel2.Height;
B.Canvas.CopyRect(dstRect,Self.Canvas,srcRect);
B.PixelFormat:=pf1bit;
B.SaveToFile(dir+'\Шаблоны\'+nam+'.bmp');
ShowMessage('Шаблон успешно
сохранился!');
B.Free;end;
procedure
TForm6.SpeedButton8Click(Sender: TObject);
begin close;end;end.
unit Unit7;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
ExtCtrls,unit1, ComCtrls, Buttons, Grids, Spin, jpeg;
type
TForm7 = class(TForm)
Panel1: TPanel; Panel2:
TPanel; SpeedButton1: TSpeedButton;
SpeedButton2:
TSpeedButton; SpeedButton3: TSpeedButton;
SpeedButton5:
TSpeedButton; SpeedButton6: TSpeedButton;
SpeedButton9:
TSpeedButton; SpeedButton10: TSpeedButton;
Image1: TImage; SpeedButton7:
TSpeedButton; SpeedButton8: TSpeedButton;
ComboBox1: TComboBox; Label4:
TLabel;Label3: TLabel;
ComboBox3: TComboBox;
Label2: TLabel; ComboBox2: TComboBox;
UpDown1: TUpDown; UpDown2:
TUpDown; Image2: TImage;
OpenDialog1: TOpenDialog;
SpeedButton4: TSpeedButton;
SpeedButton14:
TSpeedButton; SpeedButton15: TSpeedButton;
SpeedButton16:
TSpeedButton; SpeedButton11: TSpeedButton;
SpeedButton12:
TSpeedButton; SpeedButton13: TSpeedButton;
SpeedButton17:
TSpeedButton; Label1: TLabel; Label5: TLabel; Label6: TLabel;
Label7: TLabel;
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton3Click(Sender: TObject);
procedure
SpeedButton4Click(Sender: TObject);
procedure
SpeedButton5Click(Sender: TObject);
procedure
SpeedButton6Click(Sender: TObject);
procedure
Panel2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer);
procedure
ComboBox1Change(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
SpeedButton8Click(Sender: TObject);
procedure
SpeedButton9Click(Sender: TObject);
procedure
UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure
UpDown2Click(Sender: TObject; Button: TUDBtnType);
procedure
SpeedButton11Click(Sender: TObject);
procedure
SpeedButton13Click(Sender: TObject);
procedure
SpeedButton12Click(Sender: TObject);
procedure
SpeedButton14Click(Sender: TObject);
procedure
SpeedButton15Click(Sender: TObject);
procedure
SpeedButton16Click(Sender: TObject);
procedure SpeedButton17Click(Sender:
TObject);
procedure
SpeedButton10Click(Sender: TObject);
procedure
SpeedButton7Click(Sender: TObject);
procedure FormShow(Sender:
TObject);
private
{ Private declarations }
public
procedure CmFocusChanged
(var Msg: TCmFocusChanged);
message cm_FocusChanged;
{ Public declarations }
end; const n=15 ;
var Form7: TForm7;
j,pay1,okn,tek:integer; b1 : TBitBtn; fail,put,Activ,odn:string;
Msg1: TCmFocusChanged;
nam:string;
implementation
uses Unit9, Unit8;
{$R *.dfm}
procedure TForm7.CmFocusChanged
(var Msg: TCmFocusChanged);
begin Msg1:=Msg; end;
procedure
TForm7.SpeedButton1Click(Sender: TObject);
begin
b1 :=
TBitBtn.Create(Self);
nam:=nam+'#Глухой';
with b1 do begin
b1.Hint:='1';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\глухой.bmp');end;end;
procedure
TForm7.SpeedButton2Click(Sender: TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный.bmp');end;end;
procedure
TForm7.SpeedButton3Click(Sender: TObject);
begin
nam:=nam+'#Откидной';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='3';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\откидной.bmp');
Parent := Panel2;end;end;
procedure
TForm7.SpeedButton4Click(Sender: TObject);
begin
nam:=nam+'#балкон1';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='4';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\балкон1.bmp');
Parent := Panel2;end;end;
procedure
TForm7.SpeedButton5Click(Sender: TObject);
begin
nam:=nam+'#Балкон2';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='5';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\балкон2.bmp');
Parent := Panel2;end;end;
procedure
TForm7.SpeedButton6Click(Sender: TObject);
begin
nam:=nam+'#Вход';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='6';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\вход.bmp');
Parent := Panel2;end;end;
procedure
TForm7.Panel2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer);
const
SC_DragMove = $F012; { a
magic number }
begin
ReleaseCapture;
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.perform(WM_SysCommand,
SC_DragMove, 0);
end;
procedure
TForm7.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Text='Оконные модули'
then begin
SpeedButton1.Visible:=True;SpeedButton2.Visible:=True;
SpeedButton14.Visible:=True;SpeedButton15.Visible:=True;
SpeedButton16.Visible:=True;SpeedButton3.Visible:=True;
SpeedButton4.Visible:=False;SpeedButton5.Visible:=False;
SpeedButton6.Visible:=False;
end else begin
SpeedButton4.Visible:=True;SpeedButton5.Visible:=True;
SpeedButton6.Visible:=True;SpeedButton1.Visible:=False;
SpeedButton2.Visible:=False;SpeedButton3.Visible:=False;
SpeedButton14.Visible:=False;SpeedButton15.Visible:=False;
SpeedButton16.Visible:=False;end;end;
procedure
TForm7.FormCreate(Sender: TObject);
begin okn:=1;
SpeedButton1.Visible:=False;SpeedButton2.Visible:=False;
SpeedButton3.Visible:=False;SpeedButton4.Visible:=False;
SpeedButton5.Visible:=False;SpeedButton6.Visible:=False;
SpeedButton14.Visible:=False;SpeedButton15.Visible:=False;
SpeedButton16.Visible:=False;
end;
procedure
TForm7.SpeedButton8Click(Sender: TObject);
begin
if (Combobox3.Text='') or
(Combobox2.Text='') then
Showmessage('Укажите тип профиля и
ст.-пакета')
else begin
prof:=Combobox3.Text;
spak:=Combobox2.Text;
close;end;end;
procedure
TForm7.SpeedButton9Click(Sender: TObject);
var B: TBitmap;
srcRect,dstRect: TRect;
begin
if (put='') or
(nam='')then Showmessage('Сначала загрузите цену!!!')
else begin
B:=TBitmap.Create;
with dstRect do begin
Left:=0;
Top:=0;
Right:=Panel2.Width+1;
Bottom:=Panel2.Height+1;
end;
with srcRect do begin
Left:=Panel2.Left+145;
Right:=Panel2.Left+Panel2.Width+145;
Top:=Panel2.Top+10;
Bottom:=Panel2.Top+Panel2.Height+10;
end;
B.Width:=Panel2.Width;
B.Height:=Panel2.Height;
B.Canvas.CopyRect(dstRect,Self.Canvas,srcRect);
B.PixelFormat:=pf1bit;
B.SaveToFile(dir+'\temp\'+inttostr(okn)+'.bmp');
B.Free;form8.Show;end;end;
procedure
TForm7.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.Width:=UpDown1.Position*3;end;
procedure
TForm7.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
if
Msg1.Sender.ClassName='TBitBtn' then
msg1.Sender.Height:=UpDown2.Position*3;end;
procedure
TForm7.SpeedButton11Click(Sender: TObject);
Var p:integer;begin
if
Msg1.Sender.ClassName='TBitBtn' then begin
if msg1.Sender.Hint='1'
then begin p:=pos('#Глухой',nam);delete(nam,p,7);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='2'
then begin p:=pos('#Поворотный',nam);delete(nam,p,11);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='3'
then begin p:=pos('#Откидной',nam);delete(nam,p,9);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='4'
then begin p:=pos('#балкон1',nam);delete(nam,p,8);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='5'
then begin p:=pos('#Балкон2',nam);delete(nam,p,8);msg1.Sender.Destroy;end;
if msg1.Sender.Hint='6'
then begin p:=pos('#Вход',nam);delete(nam,p,5);msg1.Sender.Destroy;end;end;end;
procedure
TForm7.SpeedButton13Click(Sender: TObject);
var B: TBitmap;
srcRect,dstRect: TRect;
begin
B:=TBitmap.Create;
with dstRect do begin
Left:=0;
Top:=0;
Right:=Panel2.Width+1;
Bottom:=Panel2.Height+1;
end;
with srcRect do begin
Left:=Panel2.Left+145;
Right:=Panel2.Left+Panel2.Width+145;
Top:=Panel2.Top+10;
Bottom:=Panel2.Top+Panel2.Height+10;
end;
B.Width:=Panel2.Width;
B.Height:=Panel2.Height;
B.Canvas.CopyRect(dstRect,Self.Canvas,srcRect);
B.PixelFormat:=pf1bit;
B.SaveToFile(dir+'\Шаблоны\'+nam+'.bmp');
ShowMessage('Шаблон успешно
сохранился!');
B.Free;end;
procedure
TForm7.SpeedButton12Click(Sender: TObject);
Var s:string;d,a:integer;
begin
if
form7.OpenDialog1.Execute then begin
image2.Top:=Panel2.Top-10;
image2.Left:=Panel2.Left-130;
image2.AutoSize:=true;
image2.Transparent:=FaLSE;
Image2.Picture.LoadFromFile(OpenDialog1.FileName);
nam:=OpenDialog1.FileName;
getdir(0,s);d:=pos(s,nam);a:=pos('#',nam);
delete(nam,d,a-1);d:=pos('.',nam);
delete(nam,d,4);end;end;
procedure TForm7.SpeedButton14Click(Sender:
TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный1.bmp');end;end;
procedure TForm7.SpeedButton15Click(Sender:
TObject);
begin
nam:=nam+'#Поворотный';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='2';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Parent := Panel2;
Glyph.LoadFromFile(dir+'\Иконки\поворотный2.bmp');end;end;
procedure
TForm7.SpeedButton16Click(Sender: TObject);
begin
nam:=nam+'#Откидной';
b1 :=
TBitBtn.Create(Self);
with b1 do begin
b1.Hint:='3';
Left := 20;
Top := 20;
Width := 60;
Height := 100;
Glyph.LoadFromFile(dir+'\Иконки\откидной2.bmp');
Parent := Panel2;end;end;
procedure
TForm7.SpeedButton17Click(Sender: TObject);
begin
if
(Combobox1.Text='')or(Combobox3.Text='')or(Combobox2.Text='') then
Showmessage('Введите все необходимые
данные!') else begin
if combobox1.Text='Оконные модули'
then
fail:='\Цены\Окна\'
else fail:='\Цены\Двери\';
if
(Combobox3.Text='Exprof58mm')and (Combobox2.Text='Однокамерный') then
Put:=fail+'Exprof58mm24.dat';
if
(Combobox3.Text='Exprof58mm')and (Combobox2.Text='Двухкамерный') then
Put:=fail+'Exprof58mm32.dat';
if
(Combobox3.Text='Exprof58mm')and (Combobox2.Text='Одно стекло')
then begin
Put:=fail+'Exprof58mm24.dat';
odn:='1';end;
if
(Combobox3.Text='Exprof101mm')and (Combobox2.Text='Однокамерный') then
Put:=fail+'Exprof101mm24.dat';
if
(Combobox3.Text='Exprof101mm')and (Combobox2.Text='Двухкамерный') then
Put:=fail+'Exprof101mm32.dat';
if
(Combobox3.Text='Exprof101mm')and (Combobox2.Text='Одно стекло')
then begin
Put:=fail+'Exprof101mm24.dat';odn:='1';
end; Showmessage('Цена успешно загружена!');end;end;
procedure
TForm7.SpeedButton10Click(Sender: TObject);
var f: LongInt;
begin
if itog<>'' then
begin
if kolok>0 then
kolok:=kolok-1;
tek:=tek+1;
label7.Caption:=inttostr(kolok);
label5.Caption:=inttostr(tek);
end else Showmessage('Сначала расчитайте предыдущее окно!');
nam:='';okn:=okn+1;
for f := 0 to
ComponentCount - 1 do begin
if (Components[f] is
TBitBtn) then
(Components[f] as
TBitBtn).Visible:=false;end;end;
procedure
TForm7.SpeedButton7Click(Sender: TObject);
begin Form7.Free; end;
procedure
TForm7.FormShow(Sender: TObject);
begin tek:=1;
label7.Caption:=inttostr(kolok);
label5.Caption:=inttostr(tek);end;end.
unit Unit8;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin,
Unit7,unit1, Buttons, ComCtrls, jpeg, ExtCtrls, Grids;
type
TForm8 = class(TForm)
Image1: TImage; Label4:
TLabel;SpeedButton2: TSpeedButton;
SpeedButton9:
TSpeedButton;Label9: TLabel; SpeedButton3: TSpeedButton;
SpeedButton1: TSpeedButton;Label6:
TLabel; Label5: TLabel;SpinEdit1: TSpinEdit;
SpinEdit2:
TSpinEdit;Label2: TLabel;Label1: TLabel; Label3: TLabel;
StringGrid1: TStringGrid;
Bevel3: TBevel; Label7: TLabel; Label8: TLabel;
Bevel1: TBevel; Label14:
TLabel;Bevel2: TBevel; Label13: TLabel;Label10: TLabel;
SpeedButton5:
TSpeedButton; SpeedButton6: TSpeedButton; Label11: TLabel;
Label12: TLabel;
SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton;
SpeedButton4:
TSpeedButton; Label15: TLabel; SpeedButton10: TSpeedButton;
SpeedButton11:
TSpeedButton; SpeedButton12: TSpeedButton;
StringGrid2: TStringGrid;
Label16: TLabel; Label17: TLabel; Label18: TLabel;
Label19: TLabel;
SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton;
Label20: TLabel;
procedure SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton9Click(Sender: TObject);
procedure
SpeedButton3Click(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure
SpeedButton4Click(Sender: TObject);
procedure
SpeedButton5Click(Sender: TObject);
procedure
SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender:
TObject);
procedure
SpeedButton10Click(Sender: TObject);
procedure
SpeedButton11Click(Sender: TObject);
procedure
SpeedButton12Click(Sender: TObject);
procedure
SpeedButton8Click(Sender: TObject);
procedure
SpeedButton13Click(Sender: TObject);
procedure FormShow(Sender:
TObject);
procedure
SpeedButton14Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form8: TForm8;
p:integer; n,path,one,two,tri,minv,minh,maxv,maxh:string;
plos,res:real; l,h,impost,pay,stol,e,dob:integer;
start:Boolean;
Razpod,Markp,Podsen,So9,Lam,SOB,Ton,Maskit:string;
implementation
uses Unit15, Unit17,
Unit18, Unit19, Unit20, Unit9, Unit14;
{$R *.dfm}
procedure
TForm8.SpeedButton1Click(Sender: TObject);
begin
WinExec('c:/windows/system32/calc.exe',SW_showNormal);
end;
procedure
TForm8.SpeedButton2Click(Sender: TObject);
var f: Integer;
begin
if
StringGrid2.Cells[4,1]<>'' then
ton:='Тонировка:'+ton;
if
StringGrid2.Cells[0,1]<>'' then
SOB:='Общая площадь:'+StringGrid2.Cells[0,1];
if
StringGrid2.Cells[6,1]<>'' then
itog:=StringGrid2.Cells[6,1]+'у.е.';
if
StringGrid2.Cells[3,1]='да' then
So9:='Профиль SO9 Учтен';
if
StringGrid2.Cells[1,1]<>'' then
mon:=StringGrid2.Cells[1,1];
if
StringGrid2.Cells[5,1]<>'' then
Lam:='Ламинирование:'+StringGrid2.Cells[5,1];
for f := 0 to
ComponentCount - 1 do begin
if (Components[f] is
TSpinEdit) then
(Components[f] as
TSpinEdit).Value :=0;
Stringgrid1.Cols[0].Clear;
Stringgrid1.Cols[1].Clear;
Stringgrid1.Cols[2].Clear;
Stringgrid1.Cols[3].Clear;
Stringgrid2.Rows[1].Clear;SpeedButton5.Visible:=false;
SpeedButton6.Visible:=False;SpeedButton7.Visible:=false;
SpeedButton10.Visible:=false;SpeedButton11.Visible:=false;
SpeedButton14.Visible:=false;SpeedButton8.Visible:=false;
end;close;end;
procedure
TForm8.SpeedButton9Click(Sender: TObject);
label 1,2,3,4,5,6;
Var
i,b:integer;nam1:string;f,dop:textfile;
begin b:=1;
SpeedButton3.Visible:=true;SpeedButton9.Visible:=false;
{$I-}
AssignFile(f,dir+put);
{$I+}
If IOResult=0 then begin
Reset(f);
while not EoF(f) do begin
readln(f, one);
readln(f, two);
readln(f, tri);
end;CloseFile(f); end;
nam1:=nam;delete(nam1,1,1);nam1:=nam1+'#';
for i:=1 to length(nam1)
do begin
if nam1[i]<>'#'then
n:=n+nam1[i]
else begin if n='Глухой' then begin
Label4.Caption:='Глухой';
pay:=strtoint(one);
if odn='1' then
pay:=pay-6;
impost:=impost+1;
{$I-}
AssignFile(dop,dir+'\Технические допуски\Глухой модуль.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
1:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if (plos<=0.5) then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Глухой';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 1;
end;
if n='Поворотный' then begin
Label4.Caption:='Поворотный';
pay:=strtoint(two);
if odn='1' then
pay:=pay-6;
{$I-}
AssignFile(dop,dir+'\Технические
допуски\Поворотный модуль.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
2:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if plos<=0.5 then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Поворотный';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 2; end;
if n='Откидной' then begin
Label4.Caption:='Откидной';
pay:=strtoint(tri);
if odn='1' then
pay:=pay-6;
{$I-}
AssignFile(dop,dir+'\Технические допуски\Поворотно-откидной.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
3:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if plos<=0.5 then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Откидной';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 3; end;
if n='балкон1' then begin
Label4.Caption:='Балконная-поворотная дверь';
pay:=strtoint(one);
if odn='1' then
pay:=pay-6;
{$I-}
AssignFile(dop,dir+'\Технические допуски\Балконная поворотная.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
4:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if plos<=0.5 then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Балкон. поворотная';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 4;
end;
if n='Балкон2' then begin
Label4.Caption:='Балконная-поворотно-откидная
дверь';
pay:=strtoint(two);
if odn='1' then
pay:=pay-6;
{$I-}
AssignFile(dop,dir+'\Технические допуски\Поворотно-откидная.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
5:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if plos<=0.5 then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Балкон.
поворот-откид';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 5; end;
if n='Вход' then begin
Label4.Caption:='Входная дверь';
pay:=strtoint(tri);
if odn='1' then
pay:=pay-6;
{$I-}
AssignFile(dop,dir+'\Технические допуски\Входная дверь.dat');
{$I+}
If IOResult=0 then begin
Reset(dop);
while not EoF(dop) do
begin
readln(dop, minv);
readln(dop, minh);
readln(dop, maxv);
readln(dop, maxh); end;
CloseFile(dop); end;
SpinEdit1.MinValue:=strtoint(minh);
SpinEdit1.MaxValue:=strtoint(maxh);
SpinEdit2.MinValue:=strtoint(minv);
SpinEdit2.MaxValue:=strtoint(maxv);
SpinEdit1.Value:=strtoint(minh);
SpinEdit2.Value:=strtoint(minv);
ShowMessage('Введите размеры и
нажмите "ОК"');
6:application.ProcessMessages;
if start=true then begin
l:=spinedit1.Value;
h:=spinedit2.Value;
plos:=(l*h)*0.000001;
if plos<=0.5 then
res:=(plos*pay)+((plos*pay)/100)*30
else res:=plos*pay;
if
StringGrid1.RowCount<b then StringGrid1.RowCount:=b+1;
StringGrid1.Cells[0,b]:='Входная дверь';
StringGrid1.Cells[1,b]:=floattostr(plos);
StringGrid1.Cells[2,b]:=floattostr(res);
b:=b+1;
start:=false;SpinEdit1.Value:=0;
SpinEdit2.Value:=0; end
else goto 6;
end;n:='';end;end;dob:=b;
ShowMessage('Расчет стоимости
завершен!!!');
SpeedButton3.Visible:=false;SpeedButton9.Visible:=true;
SpeedButton2.Visible:=True;SpeedButton12.Visible:=True;end;
procedure
TForm8.SpeedButton3Click(Sender: TObject);
begin start:=true; end;
procedure
TForm8.FormCreate(Sender: TObject);
begin e:=0;
start:=false;
StringGrid2.Cells[0,0]:='Площадь';StringGrid2.Cells[1,0]:='Монтаж';
StringGrid2.Cells[2,0]:='Подоконник';StringGrid2.Cells[3,0]:='Профиль SO9';
StringGrid2.Cells[4,0]:='Тонировка';StringGrid2.Cells[5,0]:='Ламин.';
StringGrid2.Cells[6,0]:='Итог';end;
procedure
TForm8.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var
CanSelect: Boolean);
begin
Label14.Caption
:=StringGrid1.Cells [0, ARow];
stol:=Arow;end;
procedure
TForm8.SpeedButton4Click(Sender: TObject);
Var sen,sen1:real;
begin
if (label14.Caption='Поворотный')or(label14.Caption='Откидной') then
if StringGrid1.Cells [3,
stol]<>'да' then
begin
sen1:=strtofloat(StringGrid1.Cells
[2, stol]);
sen:=sen1+16;
StringGrid1.Cells [2,
stol]:=floattostr(sen);
StringGrid1.Cells [3,
stol]:='да';
ShowMessage('Расчет закончен!');end
else Showmessage('На этом модуле уже
стоит маскитка!')
else Showmessage('На данный модуль
нельзя ставить маскитку!');end;
procedure
TForm8.SpeedButton5Click(Sender: TObject);
begin
if Form8.StringGrid2.Cells
[5,1]='' then
form15.Showmodal else
Showmessage('Окно можно ламинировать только
один раз!');end;
procedure
TForm8.SpeedButton6Click(Sender: TObject);
begin
if
Form8.StringGrid2.Cells[4,1]='' then
form17.Show else
Showmessage('Окно можно тонировать
только один раз!');end;
procedure
TForm8.SpeedButton7Click(Sender: TObject);
begin
if
Form8.StringGrid2.Cells[2,1]='да'
then
Showmessage('На окно можно ставить
только один подоконник!')
else Form18.Showmodal;end;
procedure
TForm8.SpeedButton10Click(Sender: TObject);
begin
if
Form8.StringGrid2.Cells [3,1]<>'да' then
form19.Showmodal
else Showmessage('На этом окне профиль уже учтён!');end;
procedure
TForm8.SpeedButton11Click(Sender: TObject);
begin
if impost>=2 then
begin e:=e+1;
if e<=(impost-1) then
form20.Showmodal
else showmessage('Превышено
допустимое число!');end
else showmessage('Импост считается
только между двумя глухими модулями!');
end;
procedure
TForm8.SpeedButton12Click(Sender: TObject);
Var
i:integer;p2,s:real;beginp2:=0;s:=0;
for i:=1 to dob do
if
StringGrid1.Cells[1,i]<>'' then
p2:=p2+Strtofloat(StringGrid1.Cells[1,i]);
StringGrid2.Cells[0,1]:=Floattostr(p2);
for i:=1 to dob do
if
StringGrid1.Cells[2,i]<>'' then
s:=s+strtofloat(StringGrid1.Cells[2,i]);
if impost=1 then
s:=s+p2*7;
StringGrid2.Cells[6,1]:=floattostr(s);
SpeedButton12.Visible:=false;SpeedButton5.Visible:=true;
SpeedButton6.Visible:=true;SpeedButton7.Visible:=true;
SpeedButton10.Visible:=true;SpeedButton11.Visible:=true;
SpeedButton14.Visible:=true;SpeedButton8.Visible:=true;end;
procedure
TForm8.SpeedButton8Click(Sender: TObject);
Var pl,sen:real;
begin
if StringGrid2.Cells
[1,1]<>'да' then
begin
pl:=strtofloat(StringGrid2.Cells
[6,1]);
sen:=(pl/100)*12;
sen:=sen+pl;
StringGrid2.Cells
[6,1]:=floattostr(sen);
StringGrid2.Cells [1,1]:='да';
ShowMessage('Расчет закончен!');end
else Showmessage('На этом окне монтаж уже расчитан!') end;
procedure
TForm8.SpeedButton13Click(Sender: TObject);
begin
if
StringGrid2.Cells[6,1]<>'' then
Form9.Edit5.Text:=StringGrid2.Cells[6,1];
form9.Show;end;
procedure
TForm8.FormShow(Sender: TObject);
begin
SpeedButton3.Visible:=false;
SpeedButton9.Visible:=true;
StringGrid1.Cells[0,0]:='Модули';
StringGrid1.Cells[1,0]:='Площадь';
StringGrid1.Cells[2,0]:='Стоимость';
StringGrid1.Cells[3,0]:='Москитка';end;
procedure
TForm8.SpeedButton14Click(Sender: TObject);
begin form14.show;end;end.
unit Unit9;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask,
Buttons, jpeg, ExtCtrls;
type
TForm9 = class(TForm)
Image1: TImage; Label1:
TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;
Label5: TLabel; Label6:
TLabel;RadioButton1: TRadioButton;
RadioButton2:
TRadioButton;RadioButton3: TRadioButton;
SpeedButton1:
TSpeedButton;Edit1: TEdit;Edit2: TEdit;Edit3: TEdit;Edit4: TEdit;
Edit5: TEdit; procedure
SpeedButton1Click(Sender: TObject);
procedure
Edit1KeyPress(Sender: TObject; var Key: Char);
procedure
Edit2KeyPress(Sender: TObject; var Key: Char);
procedure
Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender:
TObject; var Key: Char);
procedure
Edit5KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form9: TForm9;
implementation
{$R *.dfm}
procedure
TForm9.SpeedButton1Click(Sender: TObject);
Var
evro,dol,rub:real;kursE,kursD:real;
begin
kursD:=0;kursE:=0;evro:=0;dol:=0;rub:=0;
If
RadioButton1.Checked=True then begin
kursD:=Strtofloat(Edit2.Text);
dol:=Strtofloat(Edit4.Text);
Edit3.Text:=floattoStr(dol*kursD);end;
If
RadioButton2.Checked=True then begin
kursE:=Strtofloat(Edit1.Text);
evro:=Strtofloat(Edit5.Text);
Edit3.Text:=floattoStr(evro*kursE);end;
If
RadioButton3.Checked=True then begin
kursE:=Strtofloat(Edit1.Text);
kursD:=Strtofloat(Edit2.Text);
evro:=Strtofloat(Edit5.Text);
Edit4.Text:=floattoStr((evro*kursE)/kursD);end;end;
procedure
TForm9.Edit1KeyPress(Sender: TObject; var Key: Char);
var vrPos, vrLength,
vrSelStart: byte;
const I: byte = 1;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrPos := Pos(',', Text);
vrSelStart := SelStart;
end;
case Key of '0'..'9':
begin
if (vrPos > 0) and
(vrLength - vrPos > I) and (vrSelStart >= vrPos) then
Key := #0;
end; ',', '.':
begin
if (vrPos > 0) or
(vrSelStart = 0) or (vrLength = 0) then
Key := #0 else Key
:= #44; end; #8: ; else Key := #0; end;end;
procedure
TForm9.Edit2KeyPress(Sender: TObject; var Key: Char);
var vrPos, vrLength,
vrSelStart: byte;
const I: byte = 1;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrPos := Pos(',', Text);
vrSelStart := SelStart;
end;
case Key of '0'..'9':
begin
if (vrPos > 0) and
(vrLength - vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; end;
',', '.':
begin
if (vrPos > 0) or
(vrSelStart = 0) or (vrLength = 0) then
Key := #0 else Key :=
#44; end; #8: ; else Key := #0; end;end;
procedure
TForm9.Edit3KeyPress(Sender: TObject; var Key: Char);
var vrPos, vrLength,
vrSelStart: byte;
const I: byte = 1;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrPos := Pos(',', Text);
vrSelStart := SelStart;
end;
case Key of '0'..'9':
begin
if (vrPos > 0) and
(vrLength - vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; end;
',', '.':
begin
if (vrPos > 0) or
(vrSelStart = 0) or (vrLength = 0) then Key := #0
else Key := #44; end;
#8: ; else Key := #0; end;end;
procedure
TForm9.Edit4KeyPress(Sender: TObject; var Key: Char);
var vrPos, vrLength,
vrSelStart: byte;
const I: byte = 1;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrPos := Pos(',', Text);
vrSelStart := SelStart;
end;
case Key of '0'..'9':
begin
if (vrPos > 0) and
(vrLength - vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; end;
',', '.':
begin
if (vrPos > 0) or
(vrSelStart = 0) or (vrLength = 0) then
Key := #0 else Key :=
#44; end; #8: ; else Key := #0; end;end;
procedure
TForm9.Edit5KeyPress(Sender: TObject; var Key: Char);
var vrPos, vrLength,
vrSelStart: byte;
const I: byte = 1;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrPos := Pos(',', Text);
vrSelStart := SelStart;
end;
case Key of '0'..'9':
begin
if (vrPos > 0) and
(vrLength - vrPos > I) and (vrSelStart >= vrPos) then
Key := #0; end;
',', '.':
begin
if (vrPos > 0) or
(vrSelStart = 0) or (vrLength = 0) then
Key := #0 else Key :=
#44; end; #8: ; else Key := #0; end;end;end.
unit Unit10;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt,
ExtCtrls, StdCtrls, QRPrntr, ImgList, Buttons,
RpBase, RpSystem,
RpDefine, RpRave;
type
TForm10 = class(TForm)
QuickRep1: TQuickRep;
QRSubDetail1: TQRSubDetail; QRLabel5: TQRLabel;
QRRichText1: TQRRichText;
QRLabel1: TQRLabel; QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRImage1: TQRImage; QRImage2: TQRImage;
QRImage3: TQRImage;
QRImage4: TQRImage; QRImage5: TQRImage;
QRImage6: TQRImage;
Image1: TImage; SpeedButton2: TSpeedButton;
SpeedButton1:
TSpeedButton; procedure FormCreate(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form10: TForm10;
nzak:integer;
implementation
uses Unit1,unit7;
{$R *.dfm}
procedure TForm10.FormCreate(Sender:
TObject);
begin QrrichText1.ParentRichEdit:=Form1.RichEdit1;
end;
procedure
TForm10.SpeedButton1Click(Sender: TObject);
Var
h:integer;f:textfile;s:string;dlg:Word;
begin
AssignFile(f,dir+'\nzak.txt');
Reset(f);
Read(f,s);
nzak:=StrToInt(s);
nzak:=nzak+1;
s := IntToStr(nzak);
CloseFile(f);
rewrite(f);
write(f,s);
closefile(f);
Form1.RichEdit1.Lines.SaveToFile(dir+'\БД\'+fiozak+'(№'+inttostr(nzak)+')'+'.rtf');
dlg:=MessageDlg('Вы хотите сохранить заказ?',mtConfirmation,mbYesNoCancel,0);
if dlg = mrYes then
QuickRep1.PrintBackground
else
for h:=1 to 6 do
image1.Picture.SaveToFile(dir+'\temp\'+inttostr(h)+'.bmp');
Form1.RichEdit1.Lines.Clear;Close;end;
procedure
TForm10.SpeedButton2Click(Sender: TObject);
begin
QuickRep1.Preview;end;end.
unit Unit11;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, jpeg, ExtCtrls;
type
TForm11 = class(TForm)
Image1: TImage;
SpeedButton2: TSpeedButton; SpeedButton1: TSpeedButton;
Label1: TLabel; SpinEdit1:
TSpinEdit; procedure SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form11: TForm11;
implementation
uses Unit16,Unit1;
{$R *.dfm}
procedure
TForm11.SpeedButton1Click(Sender: TObject);
begin close; end;
procedure
TForm11.SpeedButton2Click(Sender: TObject);
begin
kolok:=SpinEdit1.Value;
form16.show;
SpinEdit1.Value:=1;close;end;end.
unit Unit12;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, Mask, ComCtrls, Grids, jpeg, ExtCtrls,ShellAPI,Unit1;
type
TForm12 = class(TForm)
GroupBox2:
TGroupBox;Label1: TLabel;Image1: TImage;
SpeedButton4:
TSpeedButton; RichEdit1: TRichEdit; SpeedButton2: TSpeedButton;
SpeedButton1:
TSpeedButton; SpeedButton5: TSpeedButton;ListBox1: TListBox;
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender:
TObject);
procedure
ListBox1Enter(Sender: TObject);
procedure
FormKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender:
TObject);
private
FPrefix: array[0..255] of
char;
{ Private declarations }
public
{ Public declarations }
end;
var Form12: TForm12;
Count:integer;
implementation
{$R *.dfm}
procedure
TForm12.SpeedButton1Click(Sender: TObject);
begin close; end;
procedure
TForm12.SpeedButton4Click(Sender: TObject);
begin
richedit1.Lines.LoadFromFile(dir+'\БД\'+listbox1.Items.Strings[listbox1.ItemIndex]);
end;
procedure
TForm12.SpeedButton5Click(Sender: TObject);
begin
RichEdit1.Print('Распечатка заказа');
end;
procedure
TForm12.ListBox1Enter(Sender: TObject);
begin
FPrefix[0] := #0;
Label1.Caption :=
StrPas(FPrefix);
end;
procedure
TForm12.FormKeyPress(Sender: TObject; var Key: Char);
Var curKey: array[0..1] of
char;
ndx: integer;
begin
if ActiveControl =
ListBox1 then begin
if key = #8 {Backspace (клавиша возврата)}
then begin
if FPrefix[0] <> #0
then begin
FPrefix[StrLen(FPrefix) -
1] := #0;end end else begin
curKey[0] := Key;
curKey[1] := #0;
StrCat(FPrefix, curKey);
ndx :=
SendMessage(ListBox1.Handle, LB_FINDSTRING,
-1, longint(@FPrefix));
if ndx <> LB_ERR
then
ListBox1.ItemIndex :=
ndx;end;
Label1.Caption :=
StrPas(FPrefix);
Key := #0;end;end;
procedure
TForm12.FormShow(Sender: TObject);
var F: TSearchRec; Path:
string; Attr: Integer;
begin
Path := dir+'\БД\*.rtf';
Attr := faAnyFile;
FindFirst(Path, Attr, F);
if F.name <> '' then
begin
ListBox1.Items.Add(F.name);
{Добавление в TListBox имени найденного файла}
while FindNext(F) = 0 do
ListBox1.Items.Add(F.name);
end; FindClose(F);end;end.
unit Unit13;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls,
Buttons, unit1,jpeg, ExtCtrls;
type
TForm13 = class(TForm)
Image1: TImage;
SpeedButton3: TSpeedButton; SpeedButton2: TSpeedButton;
SpeedButton1:
TSpeedButton; StringGrid1: TStringGrid;Label2: TLabel;Label3: TLabel;
Label1: TLabel; procedure
FormCreate(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form13: TForm13;
implementation
{$R *.dfm}
procedure
TForm13.FormCreate(Sender: TObject);
begin
Form13.StringGrid1.Cells[0,0]:='Наименование';
Form13.StringGrid1.Cells[0,1]:='Глухой модуль';
Form13.StringGrid1.Cells[0,2]:='Поворотный модуль';
Form13.StringGrid1.Cells[0,3]:='Поворотно-откидной';
Form13.StringGrid1.Cells[0,4]:='Входная дверь';
Form13.StringGrid1.Cells[0,5]:='Балконная поворотная';
Form13.StringGrid1.Cells[0,6]:='Поворотно-откидная ';
Form13.StringGrid1.Cells[1,0]:='Высота(мм)';
Form13.StringGrid1.Cells[2,0]:='Ширина(мм)';
Form13.StringGrid1.Cells[3,0]:='Высота(мм)';
Form13.StringGrid1.Cells[4,0]:='Ширина(мм)';end;
procedure
TForm13.SpeedButton1Click(Sender: TObject);
begin
Form13.StringGrid1.Cells[1,1]:=inttostr(470);
Form13.StringGrid1.Cells[1,2]:=inttostr(520);
Form13.StringGrid1.Cells[1,3]:=inttostr(520);
Form13.StringGrid1.Cells[1,4]:=inttostr(1000);
Form13.StringGrid1.Cells[1,5]:=inttostr(410);
Form13.StringGrid1.Cells[1,6]:=inttostr(410);
Form13.StringGrid1.Cells[2,1]:=inttostr(400);
Form13.StringGrid1.Cells[2,2]:=inttostr(410);
Form13.StringGrid1.Cells[2,3]:=inttostr(410);
Form13.StringGrid1.Cells[2,4]:=inttostr(530);
Form13.StringGrid1.Cells[2,5]:=inttostr(410);
Form13.StringGrid1.Cells[2,6]:=inttostr(410);
Form13.StringGrid1.Cells[3,1]:=inttostr(2135);
Form13.StringGrid1.Cells[3,2]:=inttostr(2250);
Form13.StringGrid1.Cells[3,3]:=inttostr(2250);
Form13.StringGrid1.Cells[3,4]:=inttostr(2250);
Form13.StringGrid1.Cells[3,5]:=inttostr(2250);
Form13.StringGrid1.Cells[3,6]:=inttostr(2250);
Form13.StringGrid1.Cells[4,1]:=inttostr(2135);
Form13.StringGrid1.Cells[4,2]:=inttostr(800);
Form13.StringGrid1.Cells[4,3]:=inttostr(800);
Form13.StringGrid1.Cells[4,4]:=inttostr(990);
Form13.StringGrid1.Cells[4,5]:=inttostr(800);
Form13.StringGrid1.Cells[4,6]:=inttostr(800);end;
procedure
TForm13.SpeedButton2Click(Sender: TObject);
Var s:string;f:textfile;
begin
{$I-}
AssignFile(f,dir+'\Технические допуски\');
{$I+}
If IOResult=0 then begin
s:=dir+'\Технические допуски\';
Rewrite(f,s+'\Глухой модуль.dat');
Writeln(f,Form13.StringGrid1.Cells[1,1]);
Writeln(f,Form13.StringGrid1.Cells[2,1]);
Writeln(f,Form13.StringGrid1.Cells[3,1]);
Writeln(f,Form13.StringGrid1.Cells[4,1]);
CloseFile(f);
Rewrite(f,s+'\Поворотный модуль.dat');
Writeln(f,Form13.StringGrid1.Cells[1,2]);
Writeln(f,Form13.StringGrid1.Cells[2,2]);
Writeln(f,Form13.StringGrid1.Cells[3,2]);
Writeln(f,Form13.StringGrid1.Cells[4,2]);
CloseFile(f);
Rewrite(f,s+'\Поворотно-откидной.dat');
Writeln(f,Form13.StringGrid1.Cells[1,3]);
Writeln(f,Form13.StringGrid1.Cells[2,3]);
Writeln(f,Form13.StringGrid1.Cells[3,3]);
Writeln(f,Form13.StringGrid1.Cells[4,3]);
CloseFile(f);
Rewrite(f,s+'\Входная дверь.dat');
Writeln(f,Form13.StringGrid1.Cells[1,4]);
Writeln(f,Form13.StringGrid1.Cells[2,4]);
Writeln(f,Form13.StringGrid1.Cells[3,4]);
Writeln(f,Form13.StringGrid1.Cells[4,4]);
CloseFile(f);
Rewrite(f,s+'\Балконная поворотная.dat');
Writeln(f,Form13.StringGrid1.Cells[1,5]);
Writeln(f,Form13.StringGrid1.Cells[2,5]);
Writeln(f,Form13.StringGrid1.Cells[3,5]);
Writeln(f,Form13.StringGrid1.Cells[4,5]);
CloseFile(f);
Rewrite(f,s+'\Поворотно-откидная.dat');
Writeln(f,Form13.StringGrid1.Cells[1,6]);
Writeln(f,Form13.StringGrid1.Cells[2,6]);
Writeln(f,Form13.StringGrid1.Cells[3,6]);
Writeln(f,Form13.StringGrid1.Cells[4,6]);
CloseFile(f);
ShowMessage('Данные сохранены успешно!');end
else Exit; end;
procedure
TForm13.SpeedButton3Click(Sender: TObject);
begin close; end; end.
unit Unit14;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, jpeg, ExtCtrls;
type
TForm14 = class(TForm)
Image1: TImage; Label20:
TLabel; SpinEdit1: TSpinEdit; Label1: TLabel;
SpeedButton14:
TSpeedButton;
private
{ Private declarations }
public
{ Public declarations }
end;
var Form14: TForm14;
implementation
{$R *.dfm}
end.
unit Unit15;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, jpeg, ExtCtrls;
type
TForm15 = class(TForm)
Image1: TImage;
RadioButton1: TRadioButton; RadioButton2: TRadioButton;
SpeedButton8:
TSpeedButton; procedure SpeedButton8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form15: TForm15;
implementation
uses Unit8;
{$R *.dfm}
procedure
TForm15.SpeedButton8Click(Sender: TObject);
Var sum,t:real;
begin
if Form8.StringGrid2.Cells
[5,1]='' then begin
If
RadioButton1.Checked=true then begin
t:=strtofloat(Form8.StringGrid2.Cells
[6,1]);
sum:=t+((t/100)*30);
Form8.StringGrid2.Cells
[6,1]:=floattostr(sum);
Form8.StringGrid2.Cells
[5,1]:='Одна сторона';
Close; end;
If
RadioButton2.Checked=true then begin
t:=strtofloat(Form8.StringGrid2.Cells
[6,1]);
sum:=t+((t/100)*40);
Form8.StringGrid2.Cells
[6,1]:=floattostr(sum);
Form8.StringGrid2.Cells
[5,1]:='Две стороны'; Close;end;end;end;end.
unit Unit16;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
Buttons, unit1,Mask,ExtCtrls, jpeg, ComCtrls;
type
TForm16 = class(TForm)
Image1: TImage; Label1:
TLabel;Edit1: TEdit;Edit2: TEdit;Label2: TLabel;
Label3: TLabel; Memo1:
TMemo; Label6: TLabel; SpeedButton1: TSpeedButton;
SpeedButton2:
TSpeedButton; DateTimePicker1: TDateTimePicker;
MaskEdit2: TMaskEdit;
MaskEdit3: TMaskEdit; Label8: TLabel; Label7: TLabel;
Label10: TLabel; Memo4:
TMemo; Label4: TLabel;
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
procedure
Edit1KeyPress(Sender: TObject; var Key: Char);
procedure
Edit2KeyPress(Sender: TObject; var Key: Char);
procedure
FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form16: TForm16;
implementation
uses Unit10, Unit7;
{$R *.dfm}
procedure
TForm16.SpeedButton2Click(Sender: TObject);
Var f: Integer;
begin
if (Edit1.Text='')
or(Edit2.Text='')or(Memo1.Text='') then
Showmessage('Сначала введите
необходимую информацию!') else
if(MaskEdit3.Text='')and(MaskEdit2.Text='(8)
')then
Showmessage('Введите хотя бы один
номер телефона!')
else begin
fiozam:=Edit1.Text;
fiozak:=Edit2.Text;
adres:=Memo1.Text;
got:=Memo4.Text;
data:=datetostr(DateTimePicker1.Date);
domtel:=MaskEdit3.Text;
sottel:=MaskEdit2.Text;
for f := 0 to
ComponentCount - 1 do begin
if (Components[f] is
TEdit) then
(Components[f] as
TEdit).Text:='';
if (Components[f] is
TMemo) then
(Components[f] as
TMemo).Text:='';
if (Components[f] is
TMaskEdit) then
(Components[f] as
TMaskEdit).Text:='';
form7.Show; Close;
end;end;end;
procedure
TForm16.SpeedButton1Click(Sender: TObject);
begin Close; end;
procedure
TForm16.Edit1KeyPress(Sender: TObject; var Key: Char);
var vrLength,
vrSelStart: byte;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrSelStart := SelStart;
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46:
else Key := #0;end;end;
procedure
TForm16.Edit2KeyPress(Sender: TObject; var Key: Char);
var vrLength,
vrSelStart: byte;
begin
with Sender as TEdit do
begin
vrLength := Length(Text);
vrSelStart := SelStart;
end;
case Key of 'А'..'Я':begin end;
'а'..'я':begin end;
#8:begin end;
#32:begin end;
#46: else Key := #0;
end;end;
procedure
TForm16.FormCreate(Sender: TObject);
begin datetimepicker1.Date:=Date;end;end.
unit Unit17;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, jpeg,unit1, ExtCtrls,unit8;
type
TForm17 = class(TForm)
Image1: TImage; SpeedButton8:
TSpeedButton; SpeedButton1: TSpeedButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox; ComboBox3: TComboBox;
RadioButton1:
TRadioButton; RadioButton2: TRadioButton;
RadioButton3:
TRadioButton; procedure RadioButton1Click(Sender: TObject);
procedure
RadioButton2Click(Sender: TObject);
procedure
RadioButton3Click(Sender: TObject);
procedure
SpeedButton8Click(Sender: TObject);
procedure
ComboBox1Change(Sender: TObject);
procedure
ComboBox2Change(Sender: TObject);
procedure
ComboBox3Change(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var plo,zen:real;
Form17: TForm17; senton:string; t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12
,t13,h1,h2,h3,h4,h5,h6,h7,h8,r1,r2,r3,r4:string;
implementation
uses Unit22;
{$R *.dfm}
procedure
TForm17.RadioButton1Click(Sender: TObject);
Var f:textfile;
begin
if
RadioButton1.Checked=True then begin
ComboBox1.Enabled:=True;
ComboBox2.Enabled:=False;
ComboBox3.Enabled:=False;
{$I-}
AssignFile(f,dir+'\Цены\Тонировка\Prof.dat');
{$I+}
If IOResult=0 then begin
Reset(f);
while not EoF(f) do begin
readln(f,t1);
readln(f,t2);
readln(f,t3);
readln(f,t4);
readln(f,t5);
readln(f,t6);
readln(f,t7);
readln(f,t8);
readln(f,t9);
readln(f,t10);
readln(f,t11);
readln(f,t12);
readln(f,t13); end end
else begin Exit;
Showmessage('Ошибка чтения
файла цены');
CloseFile(f);
end;end;end;
procedure
TForm17.RadioButton2Click(Sender: TObject);
Var f:textfile;
begin
if
RadioButton2.Checked=True then begin
ComboBox1.Enabled:=False;
ComboBox2.Enabled:=True;
ComboBox3.Enabled:=False;
{$I-}
AssignFile(f,dir+'\Цены\Тонировка\Dekor.dat');
{$I+}
If IOResult=0 then begin
Reset(f);
while not EoF(f) do begin
readln(f,r1);
readln(f,r2);
readln(f,r3);
readln(f,r4); end end
else begin Exit;
Showmessage('Ошибка чтения
файла цены');
CloseFile(f);
end;end;end;
procedure
TForm17.RadioButton3Click(Sender: TObject);
Var f:textfile;
begin
if RadioButton3.Checked=True
then begin
ComboBox1.Enabled:=False;
ComboBox2.Enabled:=False;
ComboBox3.Enabled:=True;
{$I-}
AssignFile(f,dir+'\Цены\Тонировка\Udar.dat');
{$I+}
If IOResult=0 then begin
Reset(f);
while not EoF(f) do begin
readln(f,h1);
readln(f,h2);
readln(f,h3);
readln(f,h4);
readln(f,h5);
readln(f,h6);
readln(f,h7);
readln(f,h8); end end
else begin Exit;
Showmessage('Ошибка чтения
файла цены');
CloseFile(f);
end;end;end;
procedure
TForm17.SpeedButton8Click(Sender: TObject);
Var f: Integer;
begin
if
Form8.StringGrid2.Cells[4,1]='' then begin
if
(RadioButton1.Checked<>true)and(RadioButton2.Checked<>true)and
(RadioButton3.Checked<>true)
then
Showmessage('Сначала что-нибудь нужно выбрать!')
else
if
(Combobox1.Text='')and(Combobox2.Text='')and
(Combobox3.Text='') then
Showmessage('Выберите конкретный тип тонировки!')
else begin
plo:=StrtoFloat(Form8.StringGrid2.Cells[0,1]);
zen:=strtofloat(Form8.StringGrid2.Cells[6,1])+(strtofloat(senton)*plo);
Form8.StringGrid2.Cells[6,1]:=floattostr(zen);
Form8.StringGrid2.Cells[4,1]:=ton;
for f := 0 to
ComponentCount - 1 do
if (Components[f] is
TCombobox) then
(Components[f] as
TCombobox).Items.Clear;Close;end;
end else begin
Showmessage('Окно можно тонировать
только один раз!');
Close;end;end;
procedure
TForm17.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Text='R
Silver 20' then begin
ton:=ComboBox1.Text;
senton:=t1;end;
if ComboBox1.Text='R
Silver 35' then begin
ton:=ComboBox1.Text;
senton:=t2; end;
if ComboBox1.Text='R
Silver 50' then begin
ton:=ComboBox1.Text;
senton:=t3; end;
if ComboBox1.Text='R Grey
10' then begin
ton:=ComboBox1.Text;
senton:=t4; end;
if ComboBox1.Text='R Blue
15' then begin
ton:=ComboBox1.Text;
senton:=t5; end;
if ComboBox1.Text='R Gold
15 ' then begin
ton:=ComboBox1.Text;
senton:=t6; end;
if ComboBox1.Text='R Green
10' then begin
ton:=ComboBox1.Text;
senton:=t7; end;
if ComboBox1.Text='R
Bronze 10' then begin
ton:=ComboBox1.Text;
senton:=t8;end;
if ComboBox1.Text='HP
Natural 20 ' then begin
ton:=ComboBox1.Text;
senton:=t9;end;
if ComboBox1.Text='HP
Natural 35 ' then begin
ton:=ComboBox1.Text;
senton:=t10; end;
if ComboBox1.Text='HP
Bronze 35 ' then begin
ton:=ComboBox1.Text;
senton:=t11; end;
if ComboBox1.Text='HP Blue
35 ' then begin
ton:=ComboBox1.Text;
senton:=t12; end;
if ComboBox1.Text='HP
Green 30 ' then begin
ton:=ComboBox1.Text;
senton:=t13;end;end;
procedure
TForm17.ComboBox2Change(Sender: TObject);
begin
if ComboBox2.Text='Matt
White' then begin
ton:=ComboBox2.Text;
senton:=r1;end;
if ComboBox2.Text='Matt
Bronze' then begin
ton:=ComboBox2.Text;
senton:=r2;end;
if ComboBox2.Text='Matt
Silver' then begin
ton:=ComboBox2.Text;
senton:=r3;end;
if ComboBox2.Text='Black
Out' then begin
ton:=ComboBox2.Text;
senton:=r4;end;end;
procedure
TForm17.ComboBox3Change(Sender: TObject);
begin
if ComboBox3.Text='100 MIC
Silver 20' then begin
ton:=ComboBox3.Text;
senton:=h1;end;
if ComboBox3.Text='Safety
2 MIL' then begin
ton:=ComboBox3.Text;
senton:=h2;end;
if ComboBox3.Text='Safety
4 MIL' then begin
ton:=ComboBox3.Text;
senton:=h3;end;
if ComboBox3.Text='Safety
7 MIL' then begin
ton:=ComboBox3.Text;
senton:=h4;end;
if ComboBox3.Text='Класс защиты А1' then begin
ton:=ComboBox3.Text;
senton:=h5;end;
if ComboBox3.Text='Класс защиты А2' then begin
ton:=ComboBox3.Text;
senton:=h6;end;
if ComboBox3.Text='Класс защиты А3' then begin
ton:=ComboBox3.Text;
senton:=h7;end;
if ComboBox3.Text='Стекло 4мм' then begin
ton:=ComboBox3.Text;
senton:=h8;end;end;
procedure
TForm17.SpeedButton1Click(Sender: TObject);
begin form22.Show;end;end.
unit Unit18;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, jpeg, ExtCtrls,unit1,unit8;
type
TForm18 = class(TForm)
Image1: TImage; Label1:
TLabel; Label2: TLabel; SpeedButton8: TSpeedButton;
RadioButton1:
TRadioButton;RadioButton2: TRadioButton;ComboBox1: TComboBox;
SpinEdit1: TSpinEdit;
CheckBox1: TCheckBox;
procedure
SpeedButton8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form18: TForm18;
h100,h150,h200,h250,h300,h350,h400,h450,h500,h600,h700,h800:string;
implementation
{$R *.dfm}
procedure
TForm18.SpeedButton8Click(Sender: TObject);
Var f:textfile;k:integer;l,z:real;
begin l:=0; z:=0;
if
Form8.StringGrid2.Cells[2,1]='да'
then begin
Showmessage('На окно можно ставить
только один подоконник!');
Close; end else
if
(RadioButton1.Checked<>true)and(RadioButton2.Checked<>true)
then Showmessage('Сначала что-нибудь
нужно выбрать!')
else
if
(Combobox1.Text='')or(SpinEdit1.Value<=0)then
Showmessage('Введите все необходимые
данные!')
else begin
if
RadioButton2.Checked=True then begin
markP:='Ulьtra';
{$I-}
AssignFile(f,dir+'\Цены\Подоконники\Ultra.dat');
{$I+}
If IOResult=0 then
begin Reset(f);
while not EoF(f) do begin
readln(f,h100);
readln(f,h150);
readln(f,h200);
readln(f,h250);
readln(f,h300);
readln(f,h350);
readln(f,h400);
readln(f,h450);
readln(f,h500);
readln(f,h600);
readln(f,h700); readln(f,h800);
end;
if Combobox1.Text='100'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h100);
podsen:=floattostr(l);
razpod:='100'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='150'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h150);
podsen:=floattostr(l);
razpod:='150'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='200'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h200);
podsen:=floattostr(l);
razpod:='200'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='250'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h250);
podsen:=floattostr(l);
razpod:='250'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='300'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h300);
podsen:=floattostr(l);
razpod:='300'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='350'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h350);
podsen:=floattostr(l);
razpod:='350'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='400'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h400);
podsen:=floattostr(l);
razpod:='400'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='450'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h450);
podsen:=floattostr(l);
razpod:='450'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='500'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h500);
podsen:=floattostr(l);
razpod:='500'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='600'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h600);
podsen:=floattostr(l);
razpod:='600'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='700'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h700);
podsen:=floattostr(l);
razpod:='700'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='800'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h800);
podsen:=floattostr(l);
razpod:='800'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
end else begin Exit;
Showmessage('Ошибка чтения файла цены');
end; CloseFile(f); Close; end;
if RadioButton1.Checked=True
then begin
markP:='Moller';
{$I-}
AssignFile(f,dir+'\Цены\Подоконники\Moller.dat');
{$I+}
If IOResult=0 then begin
Reset(f);
while not EoF(f) do begin
readln(f,h150);
readln(f,h200);
readln(f,h250);
readln(f,h300);
readln(f,h350);
readln(f,h400);
readln(f,h450);
readln(f,h500);
readln(f,h600); end;
if
(Combobox1.Text='100')or(Combobox1.Text='700')or(Combobox1.Text='800') then
Showmessage('Такого размера нет,
выберите другой!')
else begin
if Combobox1.Text='150'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h150);
podsen:=floattostr(l);
razpod:='150'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='200'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h200);
podsen:=floattostr(l);
razpod:='200'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='250'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h250);
podsen:=floattostr(l);
razpod:='250'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[0,6]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='300'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h300);
podsen:=floattostr(l);
razpod:='300'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='350'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h350);
podsen:=floattostr(l);
razpod:='350'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='400'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h400);
podsen:=floattostr(l);
razpod:='400'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='450'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h450);
podsen:=floattostr(l);
razpod:='450'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='500'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h500);
podsen:=floattostr(l);
razpod:='500'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end;
if Combobox1.Text='600'
then begin
l:=(SpinEdit1.Value*0.001)*strtofloat(h600);
podsen:=floattostr(l);
razpod:='600'+'x'+inttostr(SpinEdit1.Value);
if CheckBox1.Checked=true
then l:=l+2.1;
z:=strtofloat(Form8.StringGrid2.Cells[6,1])+l;
Form8.StringGrid2.Cells[6,1]:=floattostr(z);
Form8.StringGrid2.Cells[2,1]:='да'; end; Close
end; end else begin Exit;
Showmessage('Ошибка чтения
файла цены'); end;
CloseFile(f);
end;end;end;end.
unit Unit19;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls,unit8, Spin, jpeg, ExtCtrls;
type
TForm19 = class(TForm)
Image1: TImage; Label13:
TLabel;SpinEdit1: TSpinEdit; SpeedButton8: TSpeedButton;
Label1: TLabel; procedure
SpeedButton8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form19: TForm19;
implementation
{$R *.dfm}
procedure
TForm19.SpeedButton8Click(Sender: TObject);
Var pl,sum:real;k:integer;
begin
if
Form8.StringGrid2.Cells [3,1]<>'да' then
begin
pl:=strtofloat(Form8.StringGrid2.Cells
[6,1]);
sum:=SpinEdit1.Value*0.003;
sum:=pl+sum;
Form8.StringGrid2.Cells
[6,1]:=floattostr(sum);
Form8.StringGrid2.Cells
[3,1]:='да';
Close;endelse
Showmessage('На этом окне профиль уже учтён!')end;end.
unit Unit20;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,
StdCtrls, Spin, jpeg, ExtCtrls;
type
TForm20 = class(TForm)
Image1: TImage;
Label13: TLabel; SpinEdit1: TSpinEdit; Label1: TLabel;
SpeedButton8:
TSpeedButton; procedure SpeedButton8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form20: TForm20;
implementation
uses Unit8;
{$R *.dfm}
procedure
TForm20.SpeedButton8Click(Sender: TObject);
Var pl,sum:real;k:integer;
begin
pl:=strtofloat(Form8.StringGrid2.Cells
[6,1]);
sum:=SpinEdit1.Value*0.025;
sum:=pl+sum;
Form8.StringGrid2.Cells
[6,1]:=floattostr(sum);
if (Components[k] is
TSpinEdit) then
(Components[k] as
TSpinEdit).Value:=0;Close end; end.
unit Unit21;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Buttons,
jpeg, unit1, ExtCtrls;
type
TForm21 = class(TForm)
StringGrid3: TStringGrid;
Image1: TImage; SpeedButton1: TSpeedButton;
SpeedButton2:
TSpeedButton; procedure FormCreate(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form21: TForm21;
implementation
{$R *.dfm}
procedure
TForm21.FormCreate(Sender: TObject);
begin
StringGrid3.Cells[0,0]:='Ширина';
StringGrid3.Cells[1,0]:='Moller(Германия)';
StringGrid3.Cells[2,0]:='Ulьtra(Ростов)';
StringGrid3.Cells[0,1]:='100';StringGrid3.Cells[0,2]:='150';
StringGrid3.Cells[0,3]:='200';StringGrid3.Cells[0,4]:='250';
StringGrid3.Cells[0,5]:='300';StringGrid3.Cells[0,6]:='350';
StringGrid3.Cells[0,7]:='400';StringGrid3.Cells[0,8]:='450';
StringGrid3.Cells[0,9]:='500';StringGrid3.Cells[0,10]:='600';
StringGrid3.Cells[0,11]:='700';StringGrid3.Cells[0,12]:='800';
StringGrid3.Cells[1,2]:='10,6';StringGrid3.Cells[1,3]:='12,1';
StringGrid3.Cells[1,4]:='14,5';StringGrid3.Cells[1,5]:='16,8';
StringGrid3.Cells[1,6]:='19,7';StringGrid3.Cells[1,7]:='22,4';
StringGrid3.Cells[1,8]:='25,4';StringGrid3.Cells[1,9]:='31,9';
StringGrid3.Cells[1,10]:='35,9';StringGrid3.Cells[2,1]:='3,8';
StringGrid3.Cells[2,2]:='5,7';StringGrid3.Cells[2,3]:='7,6';
StringGrid3.Cells[2,4]:='9,5';StringGrid3.Cells[2,5]:='11,5';
StringGrid3.Cells[2,6]:='13,4';StringGrid3.Cells[2,7]:='15,3';
StringGrid3.Cells[2,8]:='17,2';StringGrid3.Cells[2,9]:='19,1';
StringGrid3.Cells[2,10]:='21';StringGrid3.Cells[2,11]:='22,9';
StringGrid3.Cells[2,12]:='30,5';end;
procedure
TForm21.SpeedButton2Click(Sender: TObject);
Var s:string;f:textfile;
begin
{$I-}
AssignFile(f,dir+'\Цены\Подоконники\');
{$I+}
If IOResult=0 then
s:=dir+'\Цены\Подоконники\';
{$I-}
Rewrite(f,s+'Moller.dat');
{$I+}
If IOResult=0 then begin
Writeln(f,StringGrid3.Cells[1,2]);Writeln(f,StringGrid3.Cells[1,3]);
Writeln(f,StringGrid3.Cells[1,4]);Writeln(f,StringGrid3.Cells[1,5]);
Writeln(f,StringGrid3.Cells[1,6]);Writeln(f,StringGrid3.Cells[1,7]);
Writeln(f,StringGrid3.Cells[1,8]);Writeln(f,StringGrid3.Cells[1,9]);
Writeln(f,StringGrid3.Cells[1,10]);CloseFile(f);
Rewrite(f,s+'Ultra.dat');Writeln(f,StringGrid3.Cells[2,1]);
Writeln(f,StringGrid3.Cells[2,2]);Writeln(f,StringGrid3.Cells[2,3]);
Writeln(f,StringGrid3.Cells[2,4]);Writeln(f,StringGrid3.Cells[2,5]);
Writeln(f,StringGrid3.Cells[2,6]);Writeln(f,StringGrid3.Cells[2,7]);
Writeln(f,StringGrid3.Cells[2,8]);Writeln(f,StringGrid3.Cells[2,9]);
Writeln(f,StringGrid3.Cells[2,10]);Writeln(f,StringGrid3.Cells[2,11]);
Writeln(f,StringGrid3.Cells[2,12]);CloseFile(f);
ShowMessage('Данные сохранены успешно!');end else begin
Exit;ShowMessage('Ошибка при зиписи в файл!');end;end;
procedure
TForm21.SpeedButton1Click(Sender: TObject);
begin Close;end;end.
unit Unit22;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids,
Buttons, jpeg,Unit1, ExtCtrls;
type
TForm22 = class(TForm)
Image1: TImage;
StringGrid1: TStringGrid;Label1: TLabel; Label2: TLabel;
StringGrid2: TStringGrid;StringGrid3:
TStringGrid; Label3: TLabel;
SpeedButton2:
TSpeedButton; SpeedButton1: TSpeedButton;
procedure
FormCreate(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form22: TForm22;
implementation
uses Unit13;
{$R *.dfm}
procedure
TForm22.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Название';StringGrid1.Cells[1,0]:='Цвет';
StringGrid1.Cells[2,0]:='Светопропуск';StringGrid1.Cells[3,0]:='Цена(1м.кв)';
StringGrid1.Cells[0,1]:='R
Silver 20';StringGrid1.Cells[0,2]:='R Silver 35';
StringGrid1.Cells[0,3]:='R
Silver 50';StringGrid1.Cells[0,4]:='R Grey 10';
StringGrid1.Cells[0,5]:='R
Blue 15';StringGrid1.Cells[0,6]:='R Gold 15';
StringGrid1.Cells[0,7]:='R
Green 10';StringGrid1.Cells[0,8]:='R Bronze 10';
StringGrid1.Cells[0,9]:='HP
Natural 20';StringGrid1.Cells[0,10]:='HP Natural 35';
StringGrid1.Cells[0,11]:='HP
Bronze 35';StringGrid1.Cells[0,12]:='HP Blue 35';
StringGrid1.Cells[0,13]:='HP
Green 30';StringGrid1.Cells[1,1]:='Серебро';
StringGrid1.Cells[1,2]:='Серебро';StringGrid1.Cells[1,3]:='Серебро';
StringGrid1.Cells[1,4]:='Серый';StringGrid1.Cells[1,5]:='Голубой';
StringGrid1.Cells[1,6]:='Золото';StringGrid1.Cells[1,7]:='Зеленый';
StringGrid1.Cells[1,8]:='Бронза';StringGrid1.Cells[1,9]:='Нейтральный';
StringGrid1.Cells[1,10]:='Нейтральный';StringGrid1.Cells[1,11]:='Бронза';
StringGrid1.Cells[1,12]:='Голубой';StringGrid1.Cells[1,13]:='Зеленый';
StringGrid1.Cells[2,1]:='18';StringGrid1.Cells[2,2]:='28';StringGrid1.Cells[2,3]:='47';
StringGrid1.Cells[2,4]:='7';StringGrid1.Cells[2,5]:='15';StringGrid1.Cells[2,6]:='15';
StringGrid1.Cells[2,7]:='10';StringGrid1.Cells[2,8]:='8';StringGrid1.Cells[2,9]:='24';
StringGrid1.Cells[2,10]:='35';StringGrid1.Cells[2,11]:='37';StringGrid1.Cells[2,12]:='35';
StringGrid1.Cells[2,13]:='30';StringGrid1.Cells[3,1]:='14,3';StringGrid1.Cells[3,2]:='15,3';
StringGrid1.Cells[3,3]:='15,3';StringGrid1.Cells[3,4]:='15,3';StringGrid1.Cells[3,5]:='15,3';
StringGrid1.Cells[3,6]:='15,3';StringGrid1.Cells[3,7]:='15,3';
StringGrid1.Cells[3,8]:='15,3';StringGrid1.Cells[3,9]:='19,1';
StringGrid1.Cells[3,10]:='19,1';StringGrid1.Cells[3,11]:='19,1';
StringGrid1.Cells[3,12]:='19,1';StringGrid1.Cells[3,13]:='19,1';
StringGrid2.Cells[0,0]:='Название';StringGrid2.Cells[1,0]:='Цвет';
StringGrid2.Cells[2,0]:='Светопропуск';StringGrid2.Cells[3,0]:='Цена(1м.кв)';
StringGrid2.Cells[0,1]:='Matt
White';StringGrid2.Cells[0,2]:='Matt Bronze';
StringGrid2.Cells[0,3]:='Matt
Silver';StringGrid2.Cells[0,4]:='Black Out';
StringGrid2.Cells[1,1]:='Белый';StringGrid2.Cells[1,2]:='Бронза';
StringGrid2.Cells[1,3]:='Серебро';StringGrid2.Cells[1,4]:='Черный';
StringGrid2.Cells[2,1]:='69';StringGrid2.Cells[2,2]:='36';
StringGrid2.Cells[2,3]:='16';StringGrid2.Cells[2,4]:='0';
StringGrid2.Cells[3,1]:='15,3';StringGrid2.Cells[3,2]:='15,3';
StringGrid2.Cells[3,3]:='15,3';StringGrid2.Cells[3,4]:='17,5';
StringGrid3.Cells[0,0]:='Название';StringGrid3.Cells[1,0]:='Цвет';
StringGrid3.Cells[2,0]:='Светопропуск';StringGrid3.Cells[3,0]:='Цена(1м.кв)';
StringGrid3.Cells[0,1]:='100MIC
Silver 20';StringGrid3.Cells[0,2]:='Safety 2 MIL';
StringGrid3.Cells[0,3]:='Safety
4 MIL';StringGrid3.Cells[0,4]:='Safety 7 MIL';
StringGrid3.Cells[0,5]:='Класс защиты
А1';StringGrid3.Cells[0,6]:='Класс защиты А2';
StringGrid3.Cells[0,7]:='Класс защиты
А3';StringGrid3.Cells[0,8]:='Стекло 4мм';
StringGrid3.Cells[1,1]:='Серебро';StringGrid3.Cells[1,2]:='Прозрачная';
StringGrid3.Cells[1,3]:='Прозрачная';StringGrid3.Cells[1,4]:='Прозрачная';
StringGrid3.Cells[1,8]:='Бронза в массе';StringGrid3.Cells[2,1]:='20';
StringGrid3.Cells[2,2]:='98';StringGrid3.Cells[2,3]:='89';
StringGrid3.Cells[2,4]:='89';StringGrid3.Cells[3,1]:='32,3';
StringGrid3.Cells[3,2]:='24,9';StringGrid3.Cells[3,3]:='27';
StringGrid3.Cells[3,4]:='32,3';StringGrid3.Cells[3,5]:='39,7';
StringGrid3.Cells[3,6]:='52,9';StringGrid3.Cells[3,7]:='79,4';
StringGrid3.Cells[3,8]:='24,4';end;
procedure
TForm22.SpeedButton2Click(Sender: TObject);
Var s:string;f:textfile;begin{$I-}
AssignFile(f,dir+'\Цены\Тонировка\');{$I+}
If IOResult=0 then s:=dir+'\Цены\Тонировка\';{$I-}
Rewrite(f,s+'Prof.dat');
{$I+} If IOResult=0 then begin
Writeln(f,StringGrid1.Cells[3,1]);Writeln(f,StringGrid1.Cells[3,2]);
Writeln(f,StringGrid1.Cells[3,3]);Writeln(f,StringGrid1.Cells[3,4]);
Writeln(f,StringGrid1.Cells[3,5]);Writeln(f,StringGrid1.Cells[3,6]);
Writeln(f,StringGrid1.Cells[3,7]);Writeln(f,StringGrid1.Cells[3,8]);
Writeln(f,StringGrid1.Cells[3,9]);Writeln(f,StringGrid1.Cells[3,10]);
Writeln(f,StringGrid1.Cells[3,11]);Writeln(f,StringGrid1.Cells[3,12]);
Writeln(f,StringGrid1.Cells[3,13]);CloseFile(f);Rewrite(f,s+'Dekor.dat');
Writeln(f,StringGrid2.Cells[3,1]);Writeln(f,StringGrid2.Cells[3,2]);
Writeln(f,StringGrid2.Cells[3,3]);Writeln(f,StringGrid2.Cells[3,4]);
CloseFile(f);Rewrite(f,s+'Udar.dat');Writeln(f,StringGrid3.Cells[3,1]);
Writeln(f,StringGrid3.Cells[3,2]);Writeln(f,StringGrid3.Cells[3,3]);
Writeln(f,StringGrid3.Cells[3,4]);Writeln(f,StringGrid3.Cells[3,5]);
Writeln(f,StringGrid3.Cells[3,6]);Writeln(f,StringGrid3.Cells[3,7]);
Writeln(f,StringGrid3.Cells[3,8]);CloseFile(f);
ShowMessage('Данные сохранены успешно!');end else beginExit;
ShowMessage('Ошибка при зиписи в файл!');end;end;
procedure
TForm22.SpeedButton1Click(Sender: TObject);
begin Close;end;end.
|