似乎有时Delphi区分大小写 - “覆盖方法应该与祖先的情况相匹配”

时间:2011-10-13 13:16:31

标签: delphi compiler-construction delphi-2006

今天我遇到了'奇怪的'提示:

  

覆盖方法xxxx应该与祖先yyyy的情况相匹配。

解决方案是在祖先中完全声明方法名称....我相信这是自Delphi.Net编译器以来在编译器中休息的内容......

完全按照祖先的方式声明方法使编译器“无声”。在Delphi 2006及其他版本中还有其他“区分大小写”的提示/警告?

1 个答案:

答案 0 :(得分:14)

在与第三方代码合作时,这是一个保护代码的提示 这个提示是在为.net添加Delphi时引入的,因为其他一些.net平台区分大小写。

请注意,提示并不意味着对Delphi的任何区分大小写。
仅在下面的第1点中,Delphi本身区分大小写,第2点是Delphi编译器在Windows API中调用区分大小写的函数GetProcAddress()的方式的工件。

Delphi中的区分大小写行为

1 - 注册组件
我不知道任何其他区分大小写的提示,但请注意,当您编写自己的组件并且想要注册它们时,您声明的注册函数必须如下所示:< / p>

procedure Register;  <<-- Leading capital required.  

如果您不这样做,Delphi将不会添加您的新组件。

2 - 导入外部功能

如David所述,在导入外部函数时,必须保留DLL中使用的确切大小写。

无法禁用个别提示
请注意,您无法禁用特定提示:Can specific Delphi hints be disabled?