-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAddForce.pas
158 lines (129 loc) · 3.83 KB
/
AddForce.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
unit AddForce;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TAddForce_Form = class(TForm)
Bevel1: TBevel;
Bevel2: TBevel;
OS_Label: TLabel;
number: TEdit;
Label2: TLabel;
Label3: TLabel;
Bevel3: TBevel;
OK: TBitBtn;
cancel: TBitBtn;
procedure OKClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
nf:boolean;
end;
var
Addforce_Form: TAddforce_Form;
implementation
uses Main, Ferm_dat, Plast_FD,Plast_M, Forcnode;
var
plast:tplast;
nf:boolean;
{$R *.DFM}
procedure TAddForce_Form.OKClick(Sender: TObject);
label 3;
var i,j,k:integer;
begin
try
strtoint(Number.text)
except
Main_Form.StatusBar1.Panels[1].Text := 'Îøèáêà ïðè çàäàíèè íîìåðà.';
Main_Form.StatusBar1.Panels[2].Text := 'Ââåäèòå öåëîå ïîëîæèòåëüíîå ÷èñëî.';
beep;
Exit;
end;
if strtoint(number.text)<0 then
begin
Main_Form.StatusBar1.Panels[1].Text := 'Îòðèöàòåëíûé íîìåð.';
Main_Form.StatusBar1.Panels[2].Text := 'Ââåäèòå öåëîå ïîëîæèòåëüíîå ÷èñëî.';
beep;
Exit;
end;
Plast_m.TPlast_Form(main_Form.ActiveMDIChild).CurrentNode:=strtoint(Number.text);
with Plast_m.TPlast_Form(main_Form.ActiveMDIChild) do
begin
if kl=0 then
begin
inc(kl);
inc(Kt[kl]);
nagruz[kl,kt[kl],1]:=CurrentNode;
Main_Form.Plast_Sn_Cbx.Items.clear;
for i:=1 to kl do Main_Form.Plast_Sn_Cbx.Items.Add('Ñëó÷àé íàãðóæåíèÿ '+IntToStr(i));
main_form.Plast_SN_Cbx.ItemIndex:=kl-1;
if kl<=0 then main_form.plast_Sn_cbx.Enabled:=false
else main_form.plast_Sn_cbx.Enabled:=true;
end
else
begin
for i:= 1 to kt[main_form.Plast_SN_Cbx.ItemIndex+1] do if (nagruz[main_form.Plast_SN_Cbx.ItemIndex+1,i,1]=CurrentNode) then
begin
DeleteNode(CurrentNode,main_form.Plast_SN_Cbx.ItemIndex+1);
repaint;
end;
if(kt[main_form.Plast_SN_Cbx.ItemIndex+1]=3) then
Begin
MessageDlg(#13+'Ñëèøêîì ìíîãî íàãðóæåííûõ óçëîâ äëÿ ýòîãî ñëó÷àÿ',mtWarning,[mbOk],0);
exit;
end;
inc(kt[main_form.Plast_SN_Cbx.ItemIndex+1]);
nagruz[main_form.Plast_SN_Cbx.ItemIndex+1,kt[main_form.Plast_SN_Cbx.ItemIndex+1],1]:=CurrentNode;
end;
plast.kl1:=0;
ForceNode_Form.showmodal;
// Óáèâàåì íåçàêðåïëåííûå óçëû, òåïåðü ýòî ñäåëàòü ãîðàçäî ïðîùå :)
for i:= 1 to kt[main_form.Plast_SN_Cbx.ItemIndex+1] do if ((nagruz[main_form.Plast_SN_Cbx.ItemIndex+1,i,3]=0)and(nagruz[main_form.Plast_SN_Cbx.ItemIndex+1,i,4]=0)) then
begin
DeleteNode(nagruz[main_form.Plast_SN_Cbx.ItemIndex+1,i,1],main_form.Plast_SN_Cbx.ItemIndex+1);
repaint;
end;
end;
end;
procedure TAddForce_Form.FormShow(Sender: TObject);
begin
number.text:='';
number.SetFocus;
AddForce_Form.Left:=plast_fd_form.Left+4;
AddForce_Form.top:=plast_fd_form.top+138;
end;
procedure TAddForce_Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if nf then
begin
main_form.PlastNumberButton.down:=false;
Plast_M.TPlast_Form(Main_Form.ActiveMDIChild).repaint;
end;
end;
procedure TAddForce_Form.FormDeactivate(Sender: TObject);
begin
if nf then
begin
main_form.PlastNumberButton.down:=false;
Plast_M.TPlast_Form(Main_Form.ActiveMDIChild).repaint;
end;
end;
procedure TAddForce_Form.FormActivate(Sender: TObject);
begin
nf:=false;
if not main_form.PlastNumberButton.down then
begin
//main_form.PlastNumberButtonclick(sender);
main_form.PlastNumberButton.down:=true;
Plast_M.TPlast_Form(Main_Form.ActiveMDIChild).repaint;
nf:=true;
end;
end;
end.