Delphi XE编译器错误地警告已到达代码末尾后出现致命错误

Delphi XE编译器错误地警告已到达代码末尾后出现致命错误,delphi,Delphi,我的现有代码已经运行了多年,现在抛出了一个致命的错误。这些错误与以下错误叠加在一起: [DCC Error] fmMain.pas(1752): E2029 ')' expected but ',' found [DCC Warning] fmMain.pas(1775): W1002 Symbol 'Point' is specific to a platform [DCC Error] fmMain.pas(1775): E2029 ')' expected but ',' found [D

我的现有代码已经运行了多年,现在抛出了一个致命的错误。这些错误与以下错误叠加在一起:

[DCC Error] fmMain.pas(1752): E2029 ')' expected but ',' found
[DCC Warning] fmMain.pas(1775): W1002 Symbol 'Point' is specific to a platform
[DCC Error] fmMain.pas(1775): E2029 ')' expected but ',' found
[DCC Error] fmMain.pas(1778): E2029 ';' expected but 'IF' found
[DCC Error] fmMain.pas(1779): E2003 Undeclared identifier: 'fminiMove'
[DCC Error] fmMain.pas(1780): E2003 Undeclared identifier: 'GISmMouseUp'
[DCC Error] fmMain.pas(1780): E2003 Undeclared identifier: 'Sender'
[DCC Error] fmMain.pas(1780): E2003 Undeclared identifier: 'Shift'
[DCC Error] fmMain.pas(1781): E2029 '.' expected but ';' found 
[DCC Warning] fmMain.pas(1782): W1011 Text after final 'END.' - ignored by compiler

第1782行的警告可能是关键?这不是代码的结尾。第1782行实际上是“end;”

它通常是指向实际问题的第一个错误。其余的错误和警告很可能是由于第一个错误导致解析器不同步。
检查并再次检查1752线及其周围的方法。如果您在代码中看不到错误,请在此发布。

根据第1752行第一个错误的描述,您可能试图传递的参数比方法预期的要多


或者,如果这是一个方法声明,您忘记了方法参数必须用分号而不是逗号分隔。

在第1752行之前的代码中有错误,并且没有显示失败的代码,我很惊讶你没有告诉我们你改变了什么导致了这个问题。你的第一句话暗示你已经多年没有修改代码了。这是真的吗?如果没有,那么它已经“工作了很多年”。返回到代码的上一个工作版本,检查更改的内容。Delphi内置了版本控制,这使得该任务变得很简单。根据David的评论,我假设您的
)至少多了一个
:即使您只更改了编译器版本或升级了组件。。。事实上,您在上次成功编译和这次失败编译之间做了一些更改。这是帮助你解决问题的一条非常重要的信息。完全同意这一点。您应该始终从上到下开始修复错误,因为上面的错误可能会导致编译器以完全错误的方式处理下面的所有代码。这可能导致编译器在代码中显示错误,即使代码本身很好。或者只是一个简单的
没有相应的
错误表示找到了逗号而不是右括号。现在,如果您忘记了右括号本身,编译器很可能会说找到了分号而不是右括号,因为您在每行末尾都放了分号。