![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возврат из вызываемой процедуры или функции...
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