Delphi 2006 правильное использование END

Посмотрите на этот код:

if Poruka(BM_UWARN, GetMsg('Da li zaista želite da odbijete nalog?')) = mrOk then
  begin
    tmps := TRN.ss;
    TrnPom.ss := TRN.ss;
    RadnikOdbio.l := AdresniSlog.Rabotnik;
    if Zakljucaj(1011, tmps, 3) then
      begin
        FRazlogOdbNal.ShowModal;
        case FRazlogOdbNal.ModalResult of
          mrOk:              
            BeBankComment.ss := FRazlogOdbNal.beRazlogOdbijanja.ss;              
          else
            Otkljucaj(1011, tmps, 3);
            exit;
        end;
      end;
   end;

Не важно, что делает этот код, мне нужна помощь, достаточно ли я использовал ENDs в этой части кода. Итак, первый END имеет CASE заявление. второй END закрывается BEGIN из if Zakljucaj(1011,tmps,3) и последнее END закрывается BEGIN о начале IF, Является ли это правильным способом их закрытия, теперь компилятор, какой конец ссылается на какую часть кода? А также, знает ли компилятор, что else часть относится к case заявление? Если нет, есть ли способ явно сделать это?

1 ответ

Решение

Ваш код синтаксически правильный. Отступы, однако, немного отклонены, вы не должны делать отступ begin блока. Поведение автоформатора Rad Studio по умолчанию заключается в их выравнивании следующим образом:

if Poruka(BM_UWARN, GetMsg('Da li zaista želite da odbijete nalog?')) = mrOk then
begin
  tmps := TRN.ss;
  TrnPom.ss := TRN.ss;
  RadnikOdbio.l := AdresniSlog.Rabotnik;
  if Zakljucaj(1011, tmps, 3) then
  begin
    FRazlogOdbNal.ShowModal;
    case FRazlogOdbNal.ModalResult of
      mrOk:
        BeBankComment.ss := FRazlogOdbNal.beRazlogOdbijanja.ss;
    else
      Otkljucaj(1011, tmps, 3);
      exit;
    end;
  end;
end;

Все остальное, что вы указали в своем вопросе, верно.

Другие вопросы по тегам