Цитата:
Сообщение от BDA
Вынес бы вызовы trim в начало функции из цикла:
Код:
Edit1 := Trim(Edit1);
Edit2 := Trim(Edit2);
Edit3 := Trim(Edit3);
И не делал бы strtoint, раз в Edit3 точно записано число (на момент прохода по гриду).
|
Данные даже из файла не загружаются, а вводятся только вручную. Я посчитал, что вручную много не введешь и это не нужно. А по хорошему стоит вынести
Код:
function Prov(Edit1, Edit2, Edit3: String; StringGrid1: TStringGrid): Boolean;
var e1, e2, e3: String; e, i: Integer;
begin
Result := False;
e1 := Trim(Edit1);
e2 := Trim(Edit2);
e3 := Trim(Edit3);
if (e1 = '') or (e2 = '') or (e3 = '') then begin
ShowMessage('Вы не ввели одно из значений!');
exit;
end;
for i := low(e3) to high(e3) do
if Byte(ord(e3[i]) - ord('0')) > 9 then begin
ShowMessage('В третьем поле надо вводить числа!');
exit;
end;
e := strtoint(e3);
with StringGrid1 do
for i := FixedRows to RowCount-1 do
if (Cells[1,i] = e1) and (Cells[2,i] = e2) and (strtoint(Cells[3,i]) = e) then begin
ShowMessage('Есть одинаковые элементы!');
exit;
end;
Result := True;
end;