【发布时间】:2025-12-29 14:45:07
【问题描述】:
如何在 FMX TComboBox 上悬停时禁用鼠标滚轮滚动?
我试过重写 MouseWheel 方法,但没有任何运气。我很可能做错了,因为我没有覆盖的经验。参考:MouseWheel
我已经删除了Inherited:
type
TComboBoxOverride = class(TComboBox)
procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override;
end;
// I've tried changing the control on the class overriding the method. No luck
cbbServerMap: TComboBoxOverride;
{ TComboBoxOverride }
procedure TComboBoxOverride.MouseWheel(Shift: TShiftState; WheelDelta: Integer;
var Handled: Boolean);
begin
Handled := True;
end;
我为 VCL 和 DevEx 找到了以下 SO 帖子,但我正在努力将其转换为 FMX,参考:How to suppress mouse wheel in TcxComboBox
在TCustomComboBox.MouseWheel 方法上设置断点时,我可以看到它忽略了我的覆盖。
【问题讨论】:
-
设置句柄为真。
-
不幸的是,这没有任何作用。
-
忽略覆盖的唯一方法是组合框控件实际上不是
TComboBoxOverride类型。你确定 fmx 文件中的类是正确的吗?您在此处提供的代码应该可以工作,还有其他事情发生。 -
我很确定它是正确的。我手动设置它,然后当我点击保存时,IDE 会询问我是否要将其转换回 TComboBox,我说不要将其保留在覆盖范围内。任何人都可以预先制作这个吗?
标签: delphi firemonkey delphi-10.4-sydney