align="justify"> Button2: TButton;
StringGrid1: TStringGrid;
Edit2: TEdit;
Edit3: TEdit;
Button3: TButton;
Label3: TLabel;
procedure BitBtn1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure FormDestroy (Sender: TObject);
procedure StringGrid1KeyPress (Sender: TObject; var Key: Char);
private
{Private declarations}
public
{Public declarations}
end;
FormZad2: TFormZad2;
ClassOil: TComponentClassOil;
//розділ реалізації UnitZad1;
{$ R * .dfm}
//Кнопка виходу з форми
procedure TFormZad2.BitBtn1Click (Sender: TObject);
begin
Hide;// Закрили форму
FormZad1.Show;// Показали головну форму;
//Натиснули кнопку введення числа свердловин
procedure TFormZad2.Button2Click (Sender: TObject);
var
i: Integer;// Допоміжна змінна
//передаємо введення в клас - визначимо число свердловин
ClassOil.GetValueWells (Edit1.Text);
//якщо число свердловин введено успішно і правильно, то встановимо
//потрібний розмір колонок StringGrid1
if ClassOil.n gt; 0 then begin
with StringGrid1 do begin
ColCount:=ClassOil.n + 1;
//І запишемо заголовки колонок
for i:=1 to ColCount - 1 do
Cells [i, 0]:= Скв. + IntToStr (i);
//а також встановимо назви рядків
Cells [0,0]:= N вкв. raquo ;;
Cells [0,1]:= Дебет (м ^ 3/добу) raquo ;;
ColWidths [0]:=100;// А також змінимо ширину 1 колонки
Enabled:=True;// Дамо доступ до редактірвоанію StringGrid1
end;
end else
//заборонимо доступ до редактірвоанію StringGrid1 якщо щось не так з числом свердловин
StringGrid1.Enabled:=False ;;
//Шукаємо дві свердловини з мінімальним дебетом
procedure TFormZad2.Button3Click (Sender: TObject);
var
i, n1, n2: Integer;// Допоміжна змінна
//якщо ще не ввели число свердловин або ввели невірно
if ClassOil.n=0 then begin
ShowMessage ( Не визначено число свердловин куща );
exit;// Вихід з процедури
end;
//якщо число свердловин задано, визначимо розмір динамічного масиву
SetLength (ClassOil.NWells, ClassOil.n);// відвели місце в пам'яті під масив
//введемо дані в масив
For i:=1 to ClassOil.n do
ClassOil.NWells [i - 1]:=StrToFloat (StringGrid1.Cells [i, 1]);// масив А (1,2,3,4,5)
ClassOil.SortWells (n1, n2);
Edit2.Text:=IntToStr (n1);
Edit3.Text:=IntToStr (n2) ;;
//в момент створення форми в пам'яті створюємо об'єкт класу
procedure TFormZad2.FormCreate (Sender: TObject);
ClassOil:=TComponentClassOil.Create (ClassOil);// створюємо в пам'яті об'єкт класу
end;
//в момент знищення форми звільняємо пам'ять, зайняту під об'єкт класу
procedure TFormZad2.FormDestroy (Sender: TObject);
//ClassOil.Free;// знищуємо об'єкт
FreeAndNil (ClassOil);// Знищення та об'єкта і змінної;
//в елемент дозволяється вводити тільки числа і роздільники вещ. чисел
procedure TFormZad2.StringGrid1KeyPress (Sender: TObject; var Key: Char);
if not (Key in [ 0 .. 9 raquo ;, # 8, DecimalSeparator]) then Key:=# 0;
end.
2.6 Скріншоти
2.7 Викладки, що підтверджують правильність о...