Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.11.2012, 11:04
Аватар для morebeauty
morebeauty morebeauty вне форума
Начинающий
 
Регистрация: 21.06.2012
Сообщения: 106
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Остановка выполнения функции/процедуры из другой (дочерней) функции

Сей вопрос не особо важен и вызван чрезмерной ленью.

Суть:
Есть некоторая функция проверки условия. Вызывается из целого ряда других функций и процедур. Выдает сообщение об ошибке (если условие не выполнилось).

Вопрос:
Можно ли из этой функции проверки прервать выполнение той функции, из которой она была вызвана?

Мотивация:
На данный момент есть несколько функций проверки. Их результат критичен (то есть если результат отрицательный, дальше ничего выполняться не должно). В большинстве случаев они используются все, но местами требуется использовать их поодиночке. Выглядит это так:

Код:
function ФункцияПроверки1:boolean;
begin
******
end;

Function ФункцияПроверки2:boolean;
begin
******
end;

Function ФункцияПроверки3:boolean;
begin
******
end;

procedure ВыполняемаяПроцедура1;
begin
if ФункцияПроверки1 then
begin
***
if ФункцияПроверки2 then
begin
***
if ФункцияПроверки3 then
begin
*****
*****
*****
end;
end;
end;
end;

procedure ВыполняемаяПроцедура2;
begin
if ФункцияПроверки1 then
begin
***
if ФункцияПроверки2 then
begin
***
if ФункцияПроверки3 then
begin
*****
*****
*****
end;
end;
end;
end;
А хотелось бы упростить и привести к виду:

Код:
procedure ПроцедураПроверки1;
begin
if Условие=false then
begin
******
завершить подпрограмму, из которой была вызвана проверка;
end;
end;

procedure ПроцедураПроверки2;
begin
if Условие=false then
begin
******
завершить подпрограмму, из которой была вызвана проверка;
end;
end;

procedure ПроцедураПроверки3;
begin
if Условие=false then
begin
******
завершить подпрограмму, из которой была вызвана проверка;
end;
end;

procedure ВыполняемаяПроцедура1;
begin
ПроцедураПроверки1; //дальше не должно пойти, если условие не выполнено
***
ПроцедураПроверки2; //дальше не должно пойти, если условие не выполнено
***
ПроцедураПроверки3; //дальше не должно пойти, если условие не выполнено
***
***
***
end;

procedure ВыполняемаяПроцедура2;
begin
ПроцедураПроверки1; //дальше не должно пойти, если условие не выполнено
***
ПроцедураПроверки2; //дальше не должно пойти, если условие не выполнено
***
ПроцедураПроверки3; //дальше не должно пойти, если условие не выполнено
***
***
***
end;
Это возможно сделать?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025