т.е.
- Код: Выделить всё
- procedure TForm1.MenuItem1Click(Sender: TObject);
 begin
 pbegin;
 ///
 ///
 ///
 ////
 end;
 procedure pbegin;
 begin
 здесь сделать
 if ... then exit; /// Чтобы exit сработал в процедуре которая вызвала.
 end;
Модератор: Модераторы
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
 pbegin;
 ///
 ///
 ///
 ////
end;
procedure pbegin;
begin
 здесь сделать
 if ... then exit; /// Чтобы exit сработал в процедуре которая вызвала.
end;
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  if pbegin then exit;
  ...
end;
function pbegin: boolean;
begin
  if ... then exit(true);
  ...
  result := false;
end; .
.

iN0k писал(а):в качестве плохого паттена проэктирования:
процедуру pbegin; сделать inline;.
проверенно будет работать.
Связанную с этим паттеном ошибку у себя как-то искать запарился )))
В связи с этим процедуру EXIT не использую
procedure pbegin; inline;
begin
 if belka=false then exit;
end;
ivanov1 писал(а):инлайн не сработал
окДелай как sign говорит, с поправкой Лекс Айрин!!! Это наверно самый ПРАВИЛЬНЫЙ вариант, который он будет работать всегда.
 
 iN0k писал(а):вот ... звезды не сошлись ... а иногда могут и сойтись (обычно это при -О3) ...

iN0k писал(а):проверенно будет работать

 
 
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
  if pbegin then exit;
  ...
end;
function pbegin: boolean; 
begin
  Result := belka=false;
end;
Лекс Айрин писал(а):Как правило, если он используется, то значит программист не очень хорошо проработал код в данном месте программы.



Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1