> with sg1 do begin
Cells [0,0]: = 'Назва продукції';
Cells [1,0]: = 'ОнНГ';
Cells [2,0]: = 'ПВ';
Cells [3,0]: = 'ОнКГ';
Cells [4,0]: = 'ЗР, шт';
Cells [5,0]: = 'СвОЦЕП, руб';
Cells [6,0]: = 'СвОЦВОР, т.руб';
end;
memo1.Lines.Insert (0, DateTimeToStr (Now) + ' - Програма запущена! '); p> end;
// процедура очищення стрінггріда
procedure Tform1.cleansg (Sender: TObject),
var n2: integer;
begin
with sg1 do begin
for n2: = 1 to RowCount do begin
Rows [n2]. Clear;
end;
end;
end;
// процедура очищення Єдитів
procedure Tform1.cleanedit (Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
end;
// Створення нової бази
procedure TForm1.Button4Click (Sender: TObject);
begin
if messagedlg ('Всі не збережені дані текушего бази будуть стерті! ', mtconfirmation, mbYesNoCancel, 0) = mrYes then begin
cleansg (Sender);
memo1.Lines.Insert (0, DateTimeToStr (Now) + ' - Нова база створена. Будь ласка збережіть, задавши нове ім'я. '); p> end;
end;
// додавання запису
procedure TForm1.Button1Click (Sender: TObject);
var n, k, l: integer; o: extended;
begin
// перевірка на порожні поля edit-ів
if (edit1.Text <>'') and (Edit2.Text <>'') and (edit3.Text <>'') and (edit4.Text <>'') and (edit5.Text <>'') then
begin
try
n: = strtoint (edit2.text);
n: = strtoint (edit3.text);
n: = strtoint (edit4.text);
o: = strtofloat (edit5.text);
except
on EConvertError do messagedlg ('Поля 2 .. 5 повинні бути числом! ', Mterror, mbOKCancel, 1);
end;
// цикл очищення масиву записів
n: = 0;
repeat
Mzap [n]. prod: ='';
Mzap [n]. onng: = 0;
Mzap [n]. plan: = 0;
Mzap [n]. onkg: = 0;
Mzap [n]. svocep: = 0;
n: = n +1;
until n> = 200;
// цикл перекладу рядків stringgrid-a в масив записів
n: = 1;
repeat
if sg1.Cells [0, n] <>'' then begin
Mzap [2 * n]. prod: = sg1.Cells [0, n];
Mzap [2 * n]. onng: = strtoint (sg1.cells [1, n]);
Mzap [2 * n]. plan: = strtoint (sg1.cells [2, n]),
Mzap [2 * n]. onkg: = strtoint (sg1.cells [3, n]);
Mzap [2 * n]. svocep: = strtofloat (sg1.cells [+5, n]),
end;
n: = n +1;
until n> = sg1.RowCount;
// цикл знаходження кількості записів великих додається значення
n: = 1; l: = 0;
repeat
if (Mzap [2 * n]. prod <>'') and (CompareText (edit1.Text, Mzap [2 * n]. Prod)> 0) then l: = l +1;
n: = n +1;
until n> = 200;
// міжрядковий запис в масив
k: = 2 * l +1;
Mzap [k]. prod: = edit1.Text;
Mzap [k]. onng: = strtoint (edit2.text);
Mzap [k]. plan: = strtoint (edit3.text);
Mzap [k]. onkg: = strtoint (edit4.text);
Mzap [k]. svocep: = strtofloat (edit5.text);
cleansg (sender);// виклик очищення стрінгріда
// цикл перекладу масиву записів у стрінггрід
n: = 1; k: = 1;
repeat
if Mzap [n]. prod <>'' then begin
sg1.Cells [0, k]: = Mzap [n]. prod;
sg1.Cells [1, k]: = inttostr (Mzap [n]. onng);
sg1.Cells [2, k]: = inttostr (Mzap [n]. plan);
sg1.Cells [3, k]: = inttostr (Mzap [n]. onkg);
sg1.Cells [5, k]: = floattostr (Mzap [n]. svocep);
k: = k +1;
end;
n: = n +1;
until n> = 200;
cleanedit (Sender);// виклик очищення Єдитів
autorachet (sender);
end
else messagedlg ('Всі поля обов'язкове для заповнення! ', mterror, mbOKCancel, 1);// виклик попередження
end;
// Процедура автоматичного розрахунку
procedure Tform1.autorachet (Sender: TObject);
var n, l: longint; max: extended;
begin
n: = 1;
max: = 0;
repeat
with sg1 do begin
if cells [0, n] <>'' then begin
cells [4, n]: = inttostr (strtoint (cells [1, n]) + strtoint (cells [2, n])-strtoint (cells [3, n]));
cells [6, n]: = floattostr (strtoint (cells [4, n]) * strtofloat (cells [5, n])/1000);
if strtofloat (cells [6, n])> max then begin l: = n; max: = strtofloat (cells [6, n]); end;
end;
end;
n: = n +1;
until n> = sg1.rowCount;
memo1.Lines.Insert (0, DateTimeToS...