Помощь - Поиск - Пользователи - Календарь
Полная версия: Процедура проверки на коректность
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Desktop_4
Есть процедура:

procedure MainCheck(StringGrid: TStringGrid);
var
i, k, j, z: Integer;
begin
for j:=1 to StringGrid.ColCount-1 do
for z := 1 to StringGrid.RowCount - 1 do begin
if (length(StringGrid.Cells[j,z])=0) then
begin
messageDlg('Vvedeni ne vse danie',mtError,[mbOk],0);
exit;
end;
end;
end;




Помешяем её например
в

procedure TfrmMain.Button1Click(Sender: TObject);
var Count: Integer;
begin
MainCheck(StringGrid1);
...
<Дальше код программы>
...
end;



Как сделать что бы если Выскакивает ошибка о том что Vvedeni ne vse danie, дальше код программы не выполнялся ?


volvo
Сделай функцию, а не процедуру:

function MainCheck(StringGrid: TStringGrid);
var i, k, j, z: Integer;
begin
result := true; // <--- True - если будет ошибка
for j:=1 to StringGrid.ColCount-1 do
for z := 1 to StringGrid.RowCount - 1 do begin
if (length(StringGrid.Cells[j,z])=0) then begin
messageDlg('Vvedeni ne vse danie',mtError,[mbOk],0);
exit;
end;
end;
result := false; // Ошибки не было
end;

procedure TfrmMain.Button1Click(Sender: TObject);
var Count: Integer;
begin
if MainCheck(StringGrid1) then exit; // Была ошибка - выходим

...
<Дальше код программы>
...
end;

Desktop_4
Пишет ошибку [Error] Main.pas(208): Function needs result type
в строке function MainCheck(StringGrid: TStringGrid);
hardcase
а написать function MainCheck(StringGrid: TStringGrid): boolean самому не догадаться?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.