为什么以下代码导致缺少运算符或分号编译错误?

时间:2015-06-10 21:27:09

标签: delphi

我在表单中有以下代码:

procedure TForm1.RoundClick(Sender: TObject);
var   
  Number : real;            

begin
  rNumber := Number.Value;
  ShowMessage('Round(rNumber) = '+FloatToStr(Round(rNumber)));  
end;

这会导致以下编译器错误:

  

[错误] Unit1.pas(39):缺少运算符或分号

我没有看到任何丢失的分号,我不知道将运算符放在哪里,错误发生在rNumber

1 个答案:

答案 0 :(得分:4)

问题是您的班级有一个名为Round的按钮。因此,当您编写Round(...)时,编译器将Round视为按钮而不是函数。

您可以执行以下任一操作:

  1. 重命名按钮以避免名称冲突。
  2. 使用完全限定名称来解析名称冲突。在这种情况下,您可以编写System.Round,因为Round单位中定义了System函数。