4

我正在查看两份代码,一份我有 myForm.Hide,另一份我有 myForm.Visible := False。我不记得我为什么要更改它,如果一个是错误修复或者是否有任何区别。

4

2 回答 2

15

没有区别Hide。VCL 代码为:

procedure TCustomForm.Hide;
begin
  Visible := False;
end;

但是Show有点不同:

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
于 2011-03-25T18:45:52.230 回答
5

取决于您的 Delphi 代码的历史以及它可以追溯到多远。Form.Hide at one time (Win95/2000) 会隐藏表单及其任务栏图标 - 另一个不会。当然,有一些补丁等可以解决 Delphi 的问题,某些视频卡/调色板需要您考虑如何隐藏表单。(我正在显示我的年龄)。我已经看到将表单设置为一个很大的负数的代码只是为了将表单隐藏在屏幕之外导致硬件问题(Delphi 1-3 对硬件非常敏感)

此外,在 Delphi 3/4 前后,在 MDI 应用程序中使用最小化而不是隐藏存在内存泄漏(因此我们在 MDI 表单上使用带有表单停靠的 PAgecontrol)。因此,如果您正在查看非常旧的代码,那么这些事情很重要。如果您在 Delphi 6 或更高版本上进行编译,那么真的没有区别。

于 2011-03-25T18:51:19.480 回答