Delphi隐藏窗体:form.Hide和form.Visible之间是否有区别:=False?

Delphi隐藏窗体:form.Hide和form.Visible之间是否有区别:=False?,delphi,forms,hide,visible,Delphi,Forms,Hide,Visible,我正在查看代码的两个副本,其中一个是myForm.Hide,另一个是myForm.Visible:=False。我不记得我为什么要改变这个,如果一个是错误修复,或者是否有任何区别。隐藏没有区别。VCL代码为: procedure TCustomForm.Hide; begin Visible := False; end; 但是Show有点不同: procedure TCustomForm.Show; begin Visible := True; BringToFront; end;

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

隐藏没有区别。VCL代码为:

procedure TCustomForm.Hide;
begin
  Visible := False;
end;
但是
Show
有点不同:

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;

这取决于您的Delphi代码有多旧以及它的历史有多远。一次隐藏(Win95/2000)会隐藏窗体及其任务栏图标,而另一次则不会。当然,有一些补丁等来解决德尔福问题,某些视频卡/调色板会要求你考虑如何隐藏表单。(我在显示我的年龄)。我见过一些代码,这些代码将表单设置为一个大的负数,只是为了在屏幕上隐藏表单,从而导致硬件问题(Delphi 1-3对硬件非常敏感)


另外,在Delphi3/4前后,在MDI应用程序中使用minimize而不是hide时出现内存泄漏(因此我们使用PAgecontrol和MDI表单上的表单对接)。因此,如果您正在查看非常旧的代码,那么这些事情很重要。如果您是在Delphi 6或更高版本上编译,那么这两个版本真的没有什么区别。

我觉得您的第一段有点难以置信。我不记得有这样的事。如果TCustomForm.Hide与Visible有什么不同,我会大吃一惊:=False。另一方面,也许我的大脑已经抹去了痛苦的记忆,只留下了快乐的记忆!是的,如果我在97/98的时候没有看到,也没有自己编写代码,我也不会!Delphi 1和Delphi 2的内存非常糟糕,遇到了各种各样的问题。Delphi1是16位Win3.11,Delphi2是第一个32位版本,包含大量16位内容。只需加载Delphi2并将PC颜色设置为16种颜色,就可以看到您的程序没有加载-尤其是在窗体上有网格的情况下!!我也用过那些版本,我只是不记得有这么多痛苦!我也是!我记得在Win31中使用了一个Delphi1应用程序。笔记本电脑和台式机的大量时间,莫记忆中提到的奇怪行为!感谢MDV2000,幸运的是我正在使用Delphi 6(计划很快升级到XE),您不必记住,只需向版本控制询问有关该特定文件的日志即可。该评论将包括一个指向bug追踪器的链接,以防万一。:)您的Delphi版本中有VCL源代码吗?