【发布时间】:2017-10-24 09:03:41
【问题描述】:
看这段代码:
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。这是关闭它们的正确方法吗,编译器现在 which end 是指代码的哪一部分?而且,编译器是否知道else 部分指的是case 语句?
如果没有,有没有办法明确地做到这一点?
【问题讨论】:
-
如果您在
case .. else语句后添加一个额外的begin,编译器不会报错。 -
是的,我现在看到了,谢谢。
-
上面的正确注释应该是在
else之后的一个额外的复合begin/end语句。抱歉,如果我不清楚这一点。 -
@LURD 我理解你,但感谢您的解释,它可能对某人有所帮助。
标签: delphi if-statement case delphi-2006