gpt4 book ai didi

delphi - 具有 VCL 样式的默认按钮

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

我对具有 Default:=True 的 TButton 的样式感到困惑。问题是,至少对于某些样式(例如 Luna),最近聚焦的按钮突出显示为橙色,这与默认按钮使用的样式相同。因此,我担心用户可能会对哪个按钮是默认按钮感到困惑,或者至少会认为两个按钮突出显示很奇怪。这种行为可以在 XE7 中看到(根据评论,在 XE8 中也可以看到)。问题:

  1. 这是否被认为是一种呈现默认按钮的现代方式(相对于无样式的 VCL)?
  2. 如果这不被认为是标准行为,我可以通过策略性地启用/禁用默认按钮在我自己的对话框中解决它,但我想知道我是否错过了一些控制默认按钮和最近关注的按钮之间关系的设置按钮。有没有一个设置可以控制这个?

最佳答案

我怀疑这是一个 VCL 样式错误。创建使用标准操作系统主题的默认 VCL 应用程序。然后添加两个按钮和一个编辑控件。将其中一个按钮设置为默认按钮。

现在使用 Tab 键循环焦点。当编辑控件获得焦点时,默认按钮会突出显示。这表示如果您按ENTER,则该按钮将被按下。

但是,如果任一按钮具有焦点,则具有焦点的按钮将突出显示。这是因为,如果您在按钮获得焦点时按 ENTER,则获得焦点的按钮将被按下,无论它是否是默认按钮。

规则如下:

  • 如果按钮具有焦点,则会突出显示为默认按钮。
  • 如果按钮以外的控件获得焦点,则默认按钮(如果有)会突出显示。

下面是 XE7 中带有系统主题的应用程序的外观。非默认按钮具有焦点。

enter image description here

请注意,只有一个按钮突出显示,并且它不是默认按钮。

这是 XE7 中具有 Luna 风格的相同应用程序。

enter image description here

这里我们有默认按钮和具有焦点的按钮,两者都突出显示。我认为这是一个错误,应该报告。

关于delphi - 具有 VCL 样式的默认按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975925/

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