Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Охрана труда и техники безопасности

Поиск

 

Главная цель улучшения условий труда - достижение социального эффекта, т.е. обеспечение безопасности труда, сохранение здоровья и высокой работоспособности человека, создание всех условий для обогащения содержания труда и развития его творческого начала. Вместе с тем снижение уровня заболеваемости и числа несчастных случаев имеют и экономические результаты, выражающиеся в увеличении периода профессиональной активности трудящихся; росте производительности труда; сокращении затрат, связанных с компенсацией за работу с вредными и тяжелыми условиями труда; уменьшении потерь, связанных с травматизмом, профессиональной и профессионально-обусловленной заболеваемостью; уменьшении текучести кадров и рядом других положительных факторов производственной деятельности предприятия, связанных с улучшением условий и охраны труда.

ЭВМ устанавливается и размещается в соответствии с требованиями технических условий заводов-изготовителей. Минимальная ширина проходов между компьютерами должна быть не менее одного метра. Рабочее место с дисплеями должно располагаться на расстоянии не менее 1,5 метра.

Площадь помещения для работающего на персональном компьютере из расчета на одного человека - не менее 6 квадратных метров, кубатура - 19,5 кубических метров, с учетом максимального числа одновременно работающих.

На постоянном рабочем месте работника должны быть обеспечены микроклиматические параметры, уровни освещенности, шума и состояния воздушной среды, определенные действующими санитарными правилами и нормами.

Конструкция рабочей мебели (столы, кресла, стулья) должны обеспечивать возможность индивидуальной регулировки соответственно росту работающего и создавать удобную позу. Часто используемые предметы труда (документы, клавиатура, дисплей, принтер) должны находиться в оптимальной рабочей зоне. Рабочее место для выполнения работ в положении сидя должно соответствовать требованиям ГОСТ и технической эстетики. В конструкции его элементов необходимо учитывать характер работы, психологические особенности и антропометрические данные человека.

Рабочий стол должен регулироваться по высоте в пределах 680-760 мм, при отсутствии такой возможности 720 мм, оптимальные размеры рабочей поверхности столешницы 1600´900 мм. Под столешницей рабочего стола должно быть свободное пространство для ног с размерами по высоте не менее 600 мм, по ширине - 500 мм, по глубине - 650 мм.

Рабочий стул (кресло) должен быть снабжен подъемно-поворотным устройством, обеспечивающим регуляцию высоты сидения и спинки, его конструкции должна предусматривать также изменение угла наклона спинки. Рабочее кресло должно иметь подлокотники. Регулировка каждого параметра должна легко осуществляться, быть независимой и иметь надежную фиксацию. Высота поверхности сидения должна регулироваться в пределах 400-500 мм. Ширина сидения должна составлять не менее 400 мм, глубина - не менее 380 мм.

Высота опорной поверхности спинки должна быть не менее 300 мм. Ширина не менее 380 мм, радиус ее кривизны в горизонтальной плоскости 400 мм. Угол наклона спинки должен изменяться в пределах 90-110 % к плоскости сидения.

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

На рабочем месте необходимо предусматривать подставку для ног. Ее длина должна составлять 400 мм, ширина 350 мм, регулировка высоты 0-150 мм, угла наклона 0-120°.

В целях профилактики переутомления и перенапряжения при работе на ЭВМ необходимо выполнять комплексы упражнений. С целью снижения или устранения нервно - психического, зрительного и мышечного напряжения необходимо проводить сеансы психофизиологической разгрузки и снятия усталости во время регламентированных перерывов, и после окончания рабочего дня. Снижение или устранение нервно-психического, зрительного и мышечного напряжения, предупреждение переутомления и снятие усталости во время регламентированных перерывов и после окончания рабочего дня проводится в специально оборудованном помещении - комнате психологической разгрузки. Эту комнату следует располагать на расстоянии не белее 75 м от рабочих мест. Требования к оборудованию комнаты психологической разгрузки изложены в "Межотраслевых методических рекомендациях по предупреждению переутомления работников физического и умственного труда".

При обычной работе с компьютером необходимо делать 15-минутные перерывы через каждые два часа, а при интенсивной работе - через каждый час.

Основным перерывом является перерыв на обед. Не следует превышать темп работы порядка 10 тысяч нажатий клавиш в час (примерно 1500 слов).

При вводе данных с клавиатуры рекомендуется не зажимать телефонную трубку между плечом и ухом, а также бросить курить (что вредно как для пользователя, так и для компьютера).

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

Помещение обязательно должно удовлетворять требованиям “Пожарная безопасность зданий и сооружений”. Это в свою очередь предполагает, что здание, в котором находится помещение, отвечает стандартам безопасности. Для того чтобы исключить возможность воспламенения электрической проводки помещения от короткого замыкания, электропитание должно осуществляться через специальный электрощит, включающий в себя автомат, автоматически, прерывающий, подачу, напряжения, в, случае, перегрузки, в, электросети, которая возникает при коротком замыкании. Стены и пол помещения должны быть выполнены из негорючих материалов или отделаны (покрыты) этими материалами, во избежание распространения огня в случае возгорания оборудования. Также в помещении должно находиться не менее одного исправного порошкового огнетушителя (применение в случае возгорания оборудования водяного или пенного огнетушителей может повлечь короткое замыкание и подвергнуть опасности здоровье и жизнь пользующегося огнетушителем).


Заключение

 

В курсовом проекте были рассмотрены следующие вопросы:

· Разработан алгоритм метода решения поставленной задачи;

· Написанная программа, пригодная для использования

Задачей данного курсового проекта являлось разработать программный продукт «Решение транспортной задачи методом минимальной стоимости» с использованием таблиц в Delphi.

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

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

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


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

 


Приложение А

 

 

Рисунок 1 – Вход в программу

 

 

 

Рисунок 2 – Рабочее окно

 

 

 

Рисунок 3 – Заполнение случайными числами

 

 

Рисунок 4 – Заполнение вручную

 

 

 

Рисунок 5 – Принятие данных

 

 

Рисунок 6 – Обработка открытой формы условий транспортной задачи

 

 

 

Рисунок 7 – Результат

 


Приложение В

 

unit Unit1_1;

interface

uses

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

Dialogs, Grids, StdCtrls, Buttons, Menus;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

StringGrid2: TStringGrid;

Edit3: TEdit;

Label3: TLabel;

GroupBox1: TGroupBox;

Button4: TButton;

CheckBox1: TCheckBox;

Button5: TButton;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N4: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

PopupMenu1: TPopupMenu;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Button4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

n,m,s1,s2:integer;

ishod:array [1..100,1..100] of integer;

zap,potr:array [1..100] of integer;

s,o,q:string;

activ:integer;

VHODIM:boolean;

{ Public declarations }

end;

var

Form1: TForm1;

ac1,ac2:boolean;

implementation

uses Unit2, Unit5, Unit4;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var s1,s2,i,j,a,b:integer; s:string;

begin

Edit1.Enabled:=false;

Edit2.Enabled:=false;

Label1.Enabled:=false;

Label2.Enabled:=false;

Label3.Enabled:=true;

Edit3.Enabled:=true;

BitBtn1.Enabled:=true;N8.Enabled:=true;N13.Enabled:=true;

CheckBox1.Enabled:=false;

N5.Enabled:=false;

n:=strtoint(Edit1.Text);

m:=strtoint(Edit2.Text);

StringGrid1.ColCount:=m+2;

StringGrid1.RowCount:=n+2;

StringGrid1.FixedCols:=1;

StringGrid1.FixedRows:=1;

StringGrid1.FixedColor:=clmenu;

StringGrid2.ColCount:=m+1;

StringGrid2.RowCount:=n+1;

StringGrid2.FixedCols:=1;

StringGrid2.FixedRows:=1;

StringGrid2.FixedColor:=clmenu;

for i:=1 to n do

for j:=1 to m do

ishod[i,j]:=random(50);

while s<>'2' do

begin

for i:=1 to n do begin

a:= random(300);

s1:=s1+a;

zap[i]:=a;

StringGrid1.Cells[m+1,i]:=inttostr(zap[i]);

end;

for j:=1 to m do begin

b:= random(300);

s2:=s2+b;

potr[j]:=b;

StringGrid1.Cells[j,n+1]:=inttostr(potr[j]);

end;

if s1=s2 then s:='2' else

s1:=0; s2:=0;

end;

for i:=1 to m do begin

s:=inttostr(i);

StringGrid1.Cells[i,0]:='Пункт назначения'+s;

end;

for j:=1 to n do begin

s:=inttostr(j);

StringGrid1.Cells[0,j]:='Пункт отправления'+s;

end;

StringGrid1.Cells[m+1,0]:='Запасы';

StringGrid1.Cells[0,n+1]:='Потребности';

for i:=1 to n do

for j:=1 to m do

StringGrid1.Cells[j,i]:=inttostr(ishod[i,j]);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

form2.close;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9',#8:; // цифры и <Backspase>

#13: Edit2.SetFocus; // клавиша <Enter>

else Key:= Chr(0);

end;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9',#8:; // цифры и <Backspase>

#13: Edit2.SetFocus; // клавиша <Enter>

else Key:= Chr(0);

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var i,j:integer;

begin

CheckBox1.Enabled:=false;

Button1.Enabled:=false; N11.Enabled:=false;

Button5.Enabled:=true;N7.Enabled:=true;N18.Enabled:=true;

N6.Enabled:=false;

n:=strtoint(Edit1.Text);

m:=strtoint(Edit2.Text);

StringGrid1.ColCount:=m+2;

StringGrid1.RowCount:=n+2;

StringGrid1.FixedCols:=1;

StringGrid1.FixedRows:=1;

StringGrid1.FixedColor:=clmenu;

StringGrid2.ColCount:=m+1;

StringGrid2.RowCount:=n+1;

StringGrid2.FixedCols:=1;

StringGrid2.FixedRows:=1;

StringGrid2.FixedColor:=clmenu;

for i:=1 to m do begin

s:=inttostr(i);

StringGrid1.Cells[i,0]:='Пункт назначения'+s;

end;

for j:=1 to n do begin

s:=inttostr(j);

StringGrid1.Cells[0,j]:='Пункт отправления'+s;

end;

StringGrid1.Cells[m+1,0]:='Запасы';

StringGrid1.Cells[0,n+1]:='Потребности';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Button1.Enabled:= false;N11.Enabled:=false;

Button4.Enabled:= false;N17.Enabled:=false;

Button5.Enabled:= false;N7.Enabled:=false;N18.Enabled:=false;

BitBtn1.Enabled:= false;N8.Enabled:=false; N13.Enabled:=false;

CheckBox1.Enabled:= false;

Edit3.Enabled:= false;

Label3.Enabled:= false;

StringGrid1.Enabled:= false;

StringGrid2.Enabled:= false;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

if (length(Edit1.Text)<>0) and (length(edit2.Text)<>0) then begin

ac1:=true;Button1.Enabled:= true;CheckBox1.Enabled:= true;

StringGrid1.Enabled:=true;StringGrid2.Enabled:=true;

N5.Enabled:=true;N4.Enabled:=true; N11.Enabled:=true;

end else begin

ac1:=false;Button1.Enabled:= false;CheckBox1.Enabled:= false;

StringGrid1.Enabled:=false;StringGrid2.Enabled:=false;

N5.Enabled:=false;N4.Enabled:=false; N11.Enabled:=false;

end;

end;

procedure TForm1.Edit2Change(Sender: TObject);

begin

if (length(Edit1.Text)<>0) and (length(edit2.Text)<>0) then begin

ac1:=true;Button1.Enabled:= true;CheckBox1.Enabled:= true;

StringGrid1.Enabled:=true;StringGrid2.Enabled:=true;

N5.Enabled:=true;N4.Enabled:=true;N11.Enabled:=true;end

else begin

ac1:=false;Button1.Enabled:= false;CheckBox1.Enabled:= false;

StringGrid1.Enabled:=false;StringGrid2.Enabled:=false;

N5.Enabled:=false;N4.Enabled:=false; N11.Enabled:=false;

end;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

StringGrid1.Options:=[goEditing];

activ:=activ+1;

Edit1.Enabled:=false;

Edit2.Enabled:=false;

Label1.Enabled:=false;

Label2.Enabled:=false;

N6.Enabled:=true;

if CheckBox1.Checked=true then begin

if ac1=true then begin

Button4.Enabled:=true;N6.Enabled:=true;N17.Enabled:=true;

Button1.Enabled:=false;N4.Enabled:=false;N11.Enabled:=false;

end;

end else begin

Button4.Enabled:=false;N6.Enabled:=false;N17.Enabled:=false;

Button1.Enabled:=true;N4.Enabled:=true;N11.Enabled:=true;

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

var i,j,Jenya:integer;

begin

Jenya:=0;

for i:=1 to n+1 do

for j:=1 to m+1 do

if StringGrid1.Cells[j,i]<>'' then Jenya:=Jenya+1;

if Jenya=(((n+1)*(m+1))-1) then begin

BitBtn1.Enabled:=true; N8.Enabled:=true; N13.Enabled:=true;

Label3.Enabled:=true;

Edit3.Enabled:=true;

Button4.Enabled:=false; N8.Enabled:=true;N17.Enabled:=false;

N6.Enabled:=false;

N5.Enabled:=false;

n:=strtoint(Edit1.Text);

m:=strtoint(Edit2.Text);

s1:=0;s2:=0;

for i:=1 to n do begin

s1:=s1+strtoint(StringGrid1.Cells[m+1,i]);

end;

for j:=1 to m do begin

s2:=s2+strtoint(StringGrid1.Cells[j,n+1]);

end;

if s1<>s2 then begin

{showmessage('Для решения данной задачи необходимо, чтобы суммы запасов и потребностей совпадали');

exit;}form5.Show;

end else begin

for i:=1 to n do

for j:=1 to m do

ishod[i,j]:=strtoint(StringGrid1.Cells[j,i]);

for j:=1 to m do begin

potr[j]:=strtoint(StringGrid1.Cells[j,n+1]);

end;

for i:=1 to n do begin

zap[i]:=strtoint(StringGrid1.Cells[m+1,i]);

end;

Button5.Enabled:=false;N7.Enabled:=false;N18.Enabled:=false;

showmessage('Все введенные Вами данные приняты программой');

exit;

end;

end else begin

ShowMessage('Введите записи во все поля таблицы!!!');

exit;

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var spez:array[1..100,1..100]of integer;

i,j,dx,min,max,sh,str,stl,k,l,i1,stoim,dlas1:integer;

vyh:boolean; mar:string;

begin

StringGrid2.Cells[0,0]:='Еденица продукции';

for i:=1 to n do

for j:=1 to m do

StringGrid2.Cells[j,i]:=inttostr(0);

for i:=1 to n do

for j:=1 to m do

spez[i,j]:=ishod[i,j];

vyh:=false;

while vyh<>true do

begin

dx:=0; sh:=0;max:=0; min:=0;

for i:=1 to n do

for j:=1 to m do

if spez[i,j]=(-1) then dx:=dx+1;

if dx=m*n then vyh:=true;

if dx<(m*n) then

begin

for i:=1 to n do

for j:=1 to m do

if spez[i,j]<>(-1) then min:=spez[i,j];

for i:=1 to n do

for j:=1 to m do

if (spez[i,j]<>(-1))and(spez[i,j]<min) then min:=spez[i,j];

for i:=1 to n do

for j:=1 to m do

if spez[i,j]=min then sh:=sh+1;

if sh=1 then

begin

for i:=1 to n do

for j:=1 to m do

if spez[i,j]=min then

begin

str:=i;

stl:=j;

end;

end;

if sh>1 then

begin

for i:=1 to n do

for j:=1 to m do

if spez[i,j]=min then

begin

for k:=1 to n do

if (k<>i)and(spez[k,j]>max) then

begin

max:=spez[k,j];

str:=i;

stl:=j;

end;

 

for l:=1 to m do

if (l<>j)and(spez[i,l]>max) then

begin

max:=spez[i,l];

str:=i;

stl:=j;

end;

end;

end;

if zap[str]<potr[stl] then

begin

StringGrid2.Cells[stl,str]:=inttostr(zap[str]);

potr[stl]:=potr[stl]-zap[str];

zap[str]:=0;

for i1:=1 to m do

spez[str,i1]:=-1;

end;

if potr[stl]<zap[str] then

begin

StringGrid2.Cells[stl,str]:=inttostr(potr[stl]);

zap[str]:=zap[str]-potr[stl];

potr[stl]:=0;

for i1:=1 to n do

spez[i1,stl]:=-1;

end;

if zap[str]=potr[stl] then

begin

StringGrid2.Cells[stl,str]:=inttostr(zap[str]);

potr[stl]:=0;

zap[str]:=0;

for i1:=1 to n do

spez[i1,stl]:=-1;

for i1:=1 to m do

spez[str,i1]:=-1;

end;

end;

end;

stoim:=0;

for i:=1 to n do

for j:=1 to m do

begin

stoim:=stoim+(strtoint(StringGrid2.Cells[j,i])*ishod[i,j]);

end;

inttostr(stoim);

Edit3.Text:=inttostr(stoim);

Button1.Enabled:=false;N4.Enabled:=false; N11.Enabled:=false;

BitBtn1.Enabled:=false;N8.Enabled:=false; N13.Enabled:=false;

BitBtn2.Enabled:=true;N9.Enabled:=true; N14.Enabled:=true;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

var i,j:integer;

begin

CheckBox1.Checked:=false;

BitBtn2.Enabled:=false;N9.Enabled:=false;N14.Enabled:=false;

for i:=1 to n do

for j:=1 to m do

Stringgrid2.Cells[j,i]:='';

for i:=1 to n+1 do

for j:=1 to m+1 do

Stringgrid1.Cells[j,i]:='';

Label1.Enabled:=true;

Label2.Enabled:=true;

Edit1.Enabled:=true;

Edit2.Enabled:=true;

Edit1.Text:='';

Edit2.Text:='';

m:=0;

n:=0;

activ:=0;

StringGrid1.ColCount:=1;

StringGrid1.RowCount:=1;

StringGrid2.ColCount:=1;

StringGrid2.RowCount:=1;

StringGrid2.Cells[0,0]:='';

Label3.Enabled:=false;

Edit3.Text:='';

Edit3.Enabled:=false;

end;

end.

 

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Buttons, Mask,Registry, ExtCtrls;

type

TForm2 = class(TForm)

MaskEdit1: TMaskEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

StaticText1: TStaticText;

Bevel1: TBevel;

procedure BitBtn3Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

pass,newpass:STRING;

VHODIM:boolean;

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit3, Unit1_1, Unit4;

{$R *.dfm}

procedure TForm2.BitBtn3Click(Sender: TObject);

begin

Form2.Enabled:=False;

form3.Show;

end;

procedure TForm2.FormActivate(Sender: TObject);

begin

MaskEdit1.Text:= '';

MaskEdit1.SetFocus;

with TRegistry.Create do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey('Software', True);

if not KeyExists('MyProject') then CreateKey('MyProject');

OpenKey('MyProject', True);

if not ValueExists('Password') then begin

newpass:= '';

WriteString('Password', newpass);

end

else

pass:= ReadString('Password');

end;

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

if MaskEdit1.Text = pass then begin

{-???????????????????,?????????????????,????????????????????????? -}

Form4.Show;

Form2.Hide;

VHODIM:=true;

end

else MaskEdit1.SetFocus;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

Close;

end;

end.

 

 

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Mask,Registry, ExtCtrls;

type

TForm3 = class(TForm)

MaskEdit1: TMaskEdit;

MaskEdit2: TMaskEdit;

MaskEdit3: TMaskEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Bevel1: TBevel;

procedure FormActivate(Sender: TObject);

procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);

procedure MaskEdit2KeyPress(Sender: TObject; var Key: Char);

procedure MaskEdit3KeyPress(Sender: TObject; var Key: Char);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

v:boolean;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm3.FormActivate(Sender: TObject);

begin

v:=False;

MaskEdit1.Text:= '';

MaskEdit2.Text:= '';

MaskEdit3.Text:= '';

MaskEdit1.Enabled:= true;

MaskEdit1.SetFocus;

MaskEdit2.Enabled:= false;

MaskEdit3.Enabled:= false

end;

procedure TForm3.MaskEdit1KeyPress(Sender: TObject; var Key: Char);

begin

if (key = #13) and (MaskEdit1.Text = Form2.pass) then

begin

MaskEdit2.Enabled:= true;

MaskEdit1.Enabled:= false;

MaskEdit2.SetFocus;

end;

end;

procedure TForm3.MaskEdit2KeyPress(Sender: TObject; var Key: Char);

begin

if key = #13 then begin

MaskEdit3.Enabled:= true;

MaskEdit3.SetFocus;

MaskEdit2.Enabled:= false;

end;

end;

procedure TForm3.MaskEdit3KeyPress(Sender: TObject; var Key: Char);

begin

if (key = #13) and (MaskEdit2.Text = MaskEdit3.Text) then begin

with TRegistry.Create do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey('Software', True);

if not KeyExists('MyProject') then CreateKey('MyProject');

OpenKey('MyProject', True);

WriteString('Password', MaskEdit3.Text);

end;

v:=True;

Form3.Hide;

Form2.Enabled:=True;

end;

end;

procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

Canclose:=v;

end;

end.

 

 

unit Unit4;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls;

type

TForm4 = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

sss:Boolean;

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1_1, Unit2;

{$R *.dfm}

var

Back, Picture: TBitMap; // фон и картинка

BackRct: TRect; // положение и размер области фона,

// которая должна быть восстановлена

 

x,y:integer; // текущее положение картинки

W,H: integer; // размеры картинки

procedure TForm4.FormCreate(Sender: TObject);

begin

{ Свойству AutoSize обязательно надо

присвоить значение False. Это можно

сделать во время создания формы.

}

sss:=False;

Image1.AutoSize:= False;

// создать два объекта - битовых образа

Back:= TBitmap.Create; // фон

Picture:= TBitmap.Create; // картинка

 

// загрузить и вывести фон

Back.LoadFromFile('11.bmp');

Image1.Width:= Back.Width;

Image1.Height:= Back.Height;

Image1.Canvas.Draw(0,0,Back);

// загрузить картинку, которая будет двигаться

Picture.LoadFromFile('22.bmp');

W:= Picture.Width;

H:= Picture.Height;

// определим "прозрачный" цвет

Picture.Transparent:= True;

// прозрачный цвет картинки определяет

// левый верхний пиксел картинки

Picture.TransParentColor:= Picture.Canvas.Pixels[1,1];

// начальное положение картинки

x:= -W;

y:= 320;

// определим сохраняемую область фона

BackRct:=Bounds(x,y,W,H);

end;

procedure TForm4.Timer1Timer(Sender: TObject);

begin

if Form2.VHODIM=true then begin

// восстановлением фона удалим рисунок

Image1.Canvas.CopyRect(BackRct,Back.Canvas,BackRct);

x:=x+100;

if (x > Image1.Width)and(Form2.VHODIM=true)and (sss=false) then begin

Form1.Show;Form4.Hide;sss:=true;

end;

if x > Image1.Width then

x:=-W;

// определим сохраняемую область фона

BackRct:=Bounds(x,y,W,H);

// выведем рисунок

Image1.Canvas.Draw(x,y,Picture);

end;

end;

procedure TForm4.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

// освободим память, выделенную

// для хранения битовых образов

Back.Free;

Picture.Free;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

Form1.Show;

form4.Hide;

end;

end.

 

 

unit Unit5;

interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TForm5 = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

sogl:boolean;

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit1_1;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

var i,j:integer;

begin

sogl:=true;

Form1.Button5.Enabled:=False;

Form1.N7.Enabled:=False;

Form1.N18.Enabled:=False;

if Form1.s1<Form1.s2 then begin

Form1.n:=Form1.n+1;

Form1.StringGrid1.ColCount:=Form1.m+2;

Form1.StringGrid1.RowCount:=Form1.n+2;

Form1.StringGrid1.FixedCols:=1;

Form1.StringGrid1.FixedRows:=1;

Form1.StringGrid1.FixedColor:=clmenu;

Form1.StringGrid2.ColCount:=Form1.m+1;

Form1.StringGrid2.RowCount:=Form1.n+1;

Form1.StringGrid2.FixedCols:=1;

Form1.StringGrid2.FixedRows:=1;

Form1.StringGrid2.FixedColor:=clmenu;

for i:=1 to Form1.m do begin

Form1.s:=inttostr(i);

Form1.StringGrid1.Cells[i,0]:='Пункт назначения'+Form1.s;

end;

for j:=1 to Form1.n do begin

Form1.s:=inttostr(j);

Form1.StringGrid1.Cells[0,j]:='Пункт отправления'+Form1.s;

end;

Form1.StringGrid1.Cells[Form1.m+1,0]:='Запасы';

Form1.StringGrid1.Cells[0,Form1.n+1]:='Потребности';

for j:=1 to Form1.m do begin

Form1.StringGrid1.Cells[j,Form1.n+1]:=Form1.StringGrid1.Cells[j,Form1.n];

Form1.StringGrid1.Cells[j,Form1.n]:='0';

end;

Form1.StringGrid1.Cells[Form1.m+1,Form1.n]:=inttostr(Form1.s2-Form1.s1);

Form5.Close;

end;

if Form1.s1>Form1.s2 then begin

Form1.m:=Form1.m+1;

Form1.StringGrid1.ColCount:=Form1.m+2;

Form1.StringGrid1.RowCount:=Form1.n+2;

Form1.StringGrid1.FixedCols:=1;

Form1.StringGrid1.FixedRows:=1;

Form1.StringGrid1.FixedColor:=clmenu;

Form1.StringGrid2.ColCount:=Form1.m+1;

Form1.StringGrid2.RowCount:=Form1.n+1;

Form1.StringGrid2.FixedCols:=1;

Form1.StringGrid2.FixedRows:=1;

Form1.StringGrid2.FixedColor:=clmenu;

for i:=1 to Form1.m do begin

Form1.s:=inttostr(i);

Form1.StringGrid1.Cells[i,0]:='Пункт назначения'+Form1.s;

end;

for j:=1 to Form1.n do begin

Form1.s:=inttostr(j);

Form1.StringGrid1.Cells[0,j]:='Пункт отправления'+Form1.s;

end;

Form1.StringGrid1.Cells[Form1.m+1,0]:='Запасы';

Form1.StringGrid1.Cells[0,Form1.n+1]:='Потребности';

for j:=1 to Form1.n do begin

Form1.StringGrid1.Cells[Form1.m+1,j]:=Form1.StringGrid1.Cells[Form1.m,j];

Form1.StringGrid1.Cells[Form1.m,j]:='0';

end;

Form1.StringGrid1.Cells[Form1.m,Form1.n+1]:=inttostr(Form1.s1-Form1.s2);

Form5.Close;

end;

for i:=1 to Form1.n do

for j:=1 to Form1.m do

Form1.ishod[i,j]:=strtoint(Form1.StringGrid1.Cells[j,i]);

for j:=1 to Form1.m do begin

Form1.potr[j]:=strtoint(Form1.StringGrid1.Cells[j,Form1.n+1]);

end;

for i:=1 to Form1.n do begin

Form1.zap[i]:=strtoint(Form1.StringGrid1.Cells[Form1.m+1,i]);

end;

end;

procedure TForm5.BitBtn2Click(Sender: TObject);

begin

close;

end;

end.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-27; просмотров: 116; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.99.221 (0.009 с.)