看看这段代码:
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
的{{1}},最后一个if Zakljucaj(1011,tmps,3)
关闭END
的{{1}}。这是关闭它们的正确方法,编译器现在哪个结束指的是代码的哪一部分?而且,编译器是否知道BEGIN
部分引用了IF
语句?
如果没有,有没有办法明确这样做?
答案 0 :(得分:3)
您的代码在语法上是正确的。然而,缩进有点偏,你不应该缩进块的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;
您在问题中陈述的其他内容是正确的。