gpt4 book ai didi

delphi - 确保嵌套子控件可见

转载 作者:行者123 更新时间:2023-12-03 18:17:05 24 4
gpt4 key购买 nike

我有一个实用例程,当验证对话框中的用户输入失败时,我会调用它。它将焦点设置到有问题的控件上,发出蜂鸣声并向用户显示适当的消息。只要不隐藏有问题的控件,这种方法就可以正常工作。现在我必须调整它以适应相关控件是某种可折叠组框(甚至可能嵌套)的子项的情况,并且我必须确保在调用 SetFocus 之前展开“祖先”框。

现在我有几种可能性:

  • 将有关可折叠组件的知识融入到错误报告例程中。我想避免这种情况,因为例程应该保持通用。
  • 传递一个可以在 SetFocus 之前(或代替)调用的回调。这很容易出错,因为必须记住在所有相关位置传递回调。
  • 我最喜欢的解决方案可能是一个事件(或可重写的方法)(可能在 TWinControl 中)告诉容器控件“请确保您和您的子控件可见”,但我不知道这样的事情。

有什么办法可以处理这种情况吗?

最佳答案

  1. 定义一个接口(interface),方法名为:EnsureVisible
  2. 为您的所有组件实现它(您可能需要派生其中一些组件的您自己的版本)。这允许不同的控件具有完全不同的行为。
  3. 当控件需要确保其可见时,它会遍历其父级并调用 EnsureVisible(如果接口(interface)已实现)。

如果您不喜欢界面,那么可以使用自定义 Windows 消息来实现,但您已经了解了基本概念。

关于delphi - 确保嵌套子控件可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com