gpt4 book ai didi

delphi - TCustomForm.SetFocusedControl 和 TWinControl.SetFocus 之间的区别

转载 作者:行者123 更新时间:2023-12-03 15:47:44 25 4
gpt4 key购买 nike

我需要将焦点设置在 TEdit 控件上。通常,我在检查控件是否可以聚焦后使用TWinControl.SetFocus。最近,我注意到TCustomForm类提供了SetFocusedControl函数。

在哪些情况下使用TCustomForm.SetFocusedControl而不是TWinControl.SetFocus来设置焦点更好?

最佳答案

SetFocusedControl 由 VCL 框架在多个地方使用,以响应与焦点更改相关的 Windows 消息。例如,如果您在控件上调用 SetFocus,则确实会调用 SetFocusedControl 来更新内部状态。

虽然SetFocusedControl是一个公共(public)方法,但它实际上是一个框架方法,并且只能从实现VCL控件的代码中调用。如果您将其视为私有(private)方法,那就更好了。它不调用 Windows SetFocus 函数(因此它不会更改焦点),仅更新内部状态以跟踪焦点控制。

在您的情况下,您有使用 VCL 的应用程序代码。您没有编写 VCL 控件。您应该继续调用SetFocus以实现焦点的改变。当您这样做时,VCL 将在内部调用 SetFocusedControl 以满足其需要。

In which cases would be better to use TCustomForm.SetFocusedControl instead of TWinControl.SetFocus to set the focus?

没有。

关于delphi - TCustomForm.SetFocusedControl 和 TWinControl.SetFocus 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40131149/

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