我在 Delphi XE2 (RAD Studio) 中遇到一些常见的 IDE 错误,但问题本身不是我关心的。这是其中一个错误的结果,它让我偶然发现了其他东西。
不知何故,自动完成决定破坏表单的一些方法,所以过去是......
procedure TForm1.Button1Click(Sender: TObject);
在实现中变得像......
procedure TForm1.Buproced(Sendure :);
(不准确,但在某种程度上是这样)
所以,我必须手动修复这些方法。然而,我不小心修复了其中一个...
procedure TForm1.Button1Click;
虽然本来应该是...
procedure TForm1.Button1Click(Sender: TObject);
但它仍然编译并运行良好。
要进行测试,请启动一个新的 VCL 表单应用程序,然后仅放置一个 TButton
控件,为 OnClick
创建一个事件处理程序,并将其过程更改为...
procedure TForm1.Button1Click;
var
B: TButton;
begin
B:= TButton(Sender);
B.Caption:= 'Something';
end;
这应该是可能的吗?或者这可能是 IDE 和/或编译器错误?
最佳答案
在Delphi中,实现中可以省略参数。这不是一个错误,而是一个功能。
正确的方法签名是通过接口(interface)部分中的声明来评估的。
关于delphi - 方法在实现中是否有可能丢失参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910392/