Delphi Firemonkey TButton 免费

Delphi Firemonkey TButton free

我在 Delphi 10.1 Firemonkey 中发现了一些非常奇怪的东西。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Free;
end;

在此之后 - 当我单击此按钮时,表单的系统图标不起作用!它 returns 只有在按下另一个按钮或切换到另一个 window 并再次返回时才能工作。 为什么? 我很困惑...

解决方法是:

procedure TForm1.Button1Click(Sender: TObject);
begin
  RemoveObject(Button1);
end;

在 VCL 中使用 .Free,但 FMX 以不同的方式工作。

这是因为在 delphi 下制作弧线的方式(可怕的方式)。在 arc Free 下什么都不做。这完全是愚蠢的,但是 embarcadero seam 的人喜欢它,在我看到像你这样的人不明白为什么他们的代码不起作用之后......

所以你需要做 button1.disposeOF 而不是 button1.free ... 用 disposeOF 替换你所有的 free 并且你的代码在 ARC 下会更少错误并感谢 emb