Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возврат из вызываемой процедуры или функции...


ArtemESC ©   (2006-10-08 12:09:00) 

Процедура My2 вызывает My1, как во время выполнения My1, сделать операцию Exit для My2?
То есть:

procedure My1
begin
ExitMy2 (то есть выход не только из процедуры, но и из предыдущей...)
end;

procedure My2;
begin
...
My1
...
end;


Наверно, можно через стек и команду возврата замутить, но наверное есть более безопасное решение...


Percent   (2006-10-08 12:47:00) [1]

Это ты сам придумал

ОК. Пусть будет так. Но тогда договор - ты обязуешься в своих программах никогда не проверять коды возврата функций API. По рукам?

тем более что в сабже я интересовался как процедурой, так и функцией...

Большая разница?

raise Exception.Create

Тогда уж Abort.


ArtemESC   (2006-10-08 12:20:00) [2]

Percent   (08.10.06 12:18) [4]
Это ты сам придумал, тем более что в сабже я интересовался как процедурой, так и функцией...


Percent   (2006-10-08 12:18:00) [3]

Это уже какой то изврат

На этом изврате практически весь Windows API работает.


ArtemESC   (2006-10-08 12:16:00) [4]

Percent   (08.10.06 12:12) [2]
Это уже какой то изврат, наверное я сделаю как посоветовал DrPass...


Percent   (2006-10-08 12:12:00) [5]

Превратить My1 в функцию и возвращать код.

function My1: boolean;
begin
 Result := false;
 // тут много кода, среди которого - много Exit;
 Result := true;
end;

procedure My2;
begin
...
 if not My1 then
   Exit;
...
end;


DrPass   (2006-10-08 12:10:00) [6]

Общепринятая практика - raise Exception.Create


Наверх

Титульная страница Поиск, карта сайта Написать письмо