delphi - 方法在实现中是否有可能丢失参数?

标签 delphi parameters delphi-xe2 interface-implementation

我在 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/

相关文章:

delphi - 在Delphi 2009和Delphi XE下安装相同组件无法正常工作

performance - ClientDataset 性能 TBlobfields

java - java中如何将一个函数的返回值接收到另一个函数中

parameters - PyCharm 提取参数通常不起作用 : "Cannot perform refactoring using selected element(s)"

delphi - Shell从流而不是文件执行打印

delphi - 解码错误

file - 非 ANSI 文件的 TStringList 行为

java - 如何只允许某些值作为 Java 中方法的参数?

delphi - 如何更改 TCheckBox、TRadioButton、TGroupBox 上的标题字体颜色?

delphi - Indy HMAC-SHA1 生成意外值