2.4 Эскиз и спецификация типовых объектов управления графического

интерфейса

Эскиз графического интерфейса пользователя представлен на рисунке 2.

Рисунок 3 - Графический интерфейс пользователя

Для создания диалогового окна использовались объекты:

Полоса меню (MainMenu)- предлагает выбор основных функций обработки информации, представленные в программе, например, «Инструменты»;

Метка (Label) – постоянный текст, не подлежащий изменению при работе пользователя с экранной формой, например , «Ф.И.О. Замерщика»;

Стандартная кнопка (Button) – служит для выдачи команд на выполнение определённых функциональных действий.

Командная кнопка (BitBtn) - служит для выдачи команд на выполнение определённых функциональных действий, на поверхности кнопки расположен рисунок, например, «Готово»;

Односторонний редактор (Edit) – для отображения и изменения текста, например, при добавлении текста в файл;

Многострочный редактор(Memo)- для ввода большого объёма текстовой информации;

RadioGroup – группа зависимых переключателей, содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей.

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

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

Image – рисунок, предназначен для отображения рисунков, в том числе пиктограмм.

StringGrid – таблица строк, обладает мощными возможностями для представления текстовой информации в табличном виде.

PrintDialog – печать, реализует стандартное диалоговое окно выбора параметров для печати документов.

Combobox– всплывающий список, содержит список альтернативных значений для выбора.

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


3 Руководство программиста

3.1 Схема взаимодействия модулей

Схема взаимодействия модулей представлена на рисунке 4.

Подпись: Unit 2,Подпись: Unit 17,Подпись: Unit 21

Unit 15

 

Рисунок 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.


Информация о работе «Расчет стоимости пластиковых оконных конструкций и дверей»
Раздел: Информатика, программирование
Количество знаков с пробелами: 117658
Количество таблиц: 5
Количество изображений: 9

Похожие работы

Скачать
104941
17
4

... материала, представляемого в бизнес-плане, определяется руководителем с учетом конкретных обстоятельств и путей развития фирмы. 3. Бизнес-план замены оборудования цеха сборки пластиковых окон на ООО «Зарта» 3.1 Резюме В данном бизнес-плане рассматривается инвестиционный проект замены оборудования цеха сборки пластиковых окон. Пластиковые окна являются достаточно востребованным ...

Скачать
61786
20
4

... 1350 1350 1350 3. Выручка от реализации продукции, тыс.руб. 2430000 2430000 2430000 2430000 10800000 4590000 6. План производства Специалисты организации ООО «Сервисстрой» будут использовать уникальную технологию установки пластиковых окон, обеспечивающую высокое качество установки и долговечность пластиковых окон. Широкое использование в технологии лучших европейских материалов ...

Скачать
28868
6
0

... любые требования рынка. 2.4.3. Анализ рынка ресурсов   Для производства металлопластиковых ограждающих строительных конструкций требуются следующие основные комплектующие материалы. 1. Пластиковый профиль. 2. Металлопрокат. 3. Стекло. 4. Запорная арматура. 5. Фурнитура. 6. Расходные материалы. Поставка всех материалов будет осуществляться из ФРГ автотранспортом на условиях Новосибирска. ...

Скачать
56742
15
12

... в минимальных количествах, которые к тому же спрятаны глубоко в конструкцию двери и выделения формальдегида практически устранены. 7. Оценка спроса на рынке окон и дверей Санкт Петербурга Большую часть доходов производители пластмассовых окон получают от крупных объектов. Заказчиками в этом случае выступают строительные компании. В больших объемах окна закупают и некоторые мощные ...

0 комментариев


Наверх