【问题标题】:Why might TControl.Hide not hide a control?为什么 TControl.Hide 不能隐藏控件?
【发布时间】:2011-12-24 10:10:17
【问题描述】:

是否有任何理由(无论 多么看起来微不足道)会阻止 TControl.Hidecontrol.Visible := False 工作?

我的应用程序有一行代码用于隐藏一个面板,该面板包含一些控件(JvPanel 等),由于某种原因没有隐藏该面板。

这是代码

pnlMainData.Hide;

我尝试向面板发送直接消息以将其隐藏(就像在 SetVisible 函数中一样)无济于事。

【问题讨论】:

  • 也许pnlMainData 不是你想的那样?也许pnlMainData 有一个自动管理其子控件的父级?也许您在TTimerOnTimer 事件中或在TApplicationEventsOnIdle 事件中执行pnlMainData.Show
  • ShowWindow(pnlMainData.Handle, SW_HIDE) 是否隐藏面板?如果是,那么自定义 WndProc 可能正在吃某些消息?
  • 你展示一个重现问题的小项目怎么样?

标签: delphi components visibility


【解决方案1】:

在与这个问题斗争了一段时间之后,我重新编写了一堆代码来处理隐藏事件并自己整理出来。我也注意到的一件事是,使用 FASTMM 时有时会出现此问题,而在不使用时似乎工作正常。

我已将应用发送给我的客户测试人员进行测试,以便我们看看他们是否有同样的问题。

【讨论】:

  • 不要自欺欺人地认为 FastMM 是问题所在。几乎可以肯定,问题出在您的代码中。
  • 我不是。我使用 fastmm 来跟踪我正在跟踪的其他一些错误,并且只是注意到在尝试隐藏面板时它有时会无法隐藏它。无论如何,隐藏功能正常工作。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 2016-04-29
  • 2015-08-09
  • 1970-01-01
  • 2019-06-21
  • 2021-03-11
  • 2016-10-08
  • 2011-08-14
相关资源
最近更新 更多