关于函数返回值的问题?
(1)
function TfrmEditMainData.CheckContent: Boolean;
begin
Result := True;
if edtCorpNameC.Text + edtCorpNameE.Text = '' then
begin
ShowMessage(MESSAGE_NOCORPNAME);
edtCorpNameC.SetFocus;
CheckContent := False; <----赋值后并没有结束函数,而是继续执行下去
end;
if edtNameC.Text + edtNameE.Text = '' then
begin
ShowMessage(MESSAGE_NONAME);
edtNameC.SetFocus;
CheckContent := False;
end;
if cmbManager.Text = '' then
begin
ShowMessage(MESSAGE_NOMANAGER);
cmbManager.SetFocus;
CheckContent := False;
end;
end;
(2)
function TfrmEditMainData.CheckContent: Boolean;
begin
Result := True;
if edtCorpNameC.Text + edtCorpNameE.Text = '' then
begin
ShowMessage(MESSAGE_NOCORPNAME);
edtCorpNameC.SetFocus;
Result := False;
Exit;
end;
if edtNameC.Text + edtNameE.Text = '' then
begin
ShowMessage(MESSAGE_NONAME);
edtNameC.SetFocus;
Result := False;
Exit;
end;
if cmbManager.Text = '' then
begin
ShowMessage(MESSAGE_NOMANAGER);
cmbManager.SetFocus;
Result := False;
Exit;
end;
end;
这两个函数一个是通过Result,一个是通过函数名CheckContent返回。
我记得以前看书上说在函数中对函数名赋值就结束函数了。
但是现在(1)赋值后并没有结束函数,而是继续执行下去。
(2)是一般的做法。
我以前看的是pascal书(黄色封面的),是不是现在在object pascal中有所改变了。