gpt4 book ai didi

delphi - TButton的缺陷

转载 作者:行者123 更新时间:2023-12-02 10:55:56 25 4
gpt4 key购买 nike

Delphi XE2 中的

TButton 有一个Style 属性。当此属性设置为 bsSplitButton 时,按钮右侧会显示一个下拉箭头:

enter image description here

但是,这个下拉区域有一些不便:

  1. 很多情况下它太窄了,下拉区域的静态宽度只有11个像素。

  2. 当鼠标指针悬停在下拉区域上时,下拉区域没有明确的悬停指示。

如何实现 TButton 的后代来修复这种不便?后代应该有一个 DropDownWidth 属性和一个当鼠标悬停在下拉区域上时处理和更改下拉显示的属性。

最佳答案

您的后代必须调用 Button_SplitInfo(或发送 BCM_SETSPLITINFO)来调整分割宽度。下面是一个运行时示例用法,您可以在您的后代中集成类似的功能:

procedure SetButtonSplitWidth(Button: TButton; Width: Integer);
var
Info: TButtonSplitinfo;
begin
if Button.Style = bsSplitButton then begin
Info.mask := BCSIF_SIZE;
Info.size.cx := Width;
Info.size.cy := 0;
Button_SetSplitInfo(Button.Handle, Info);
Button.Invalidate;
end;
end;

调用结果示例

SetButtonSplitWidth(Button2, 25);

是这样的:

enter image description here

参见documentation你还能做什么。没有可以修改 native 按钮控件的悬停行为的功能。为此,您可能最好不要从 TButton 开始。

关于delphi - TButton的缺陷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288185/

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