delphi 如何禁用FMX ComboBox鼠标滚轮滚动

uelo1irk  于 2022-12-03  发布在  其他
关注(0)|答案(2)|浏览(193)

当鼠标悬停在FMX TComboBox上时,如何禁用它的鼠标滚轮滚动?我尝试过重写MouseWheel方法,但没有任何运气。我很可能是做错了,因为我没有重写的经验。REF: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;

我找到了下面的SO职位的VCL和DevEx,但我很难把它转换为FMX,参考:How to suppress mouse wheel in TcxComboBox
当在TCustomComboBox.MouseWheel方法上设置断点时,我可以看到它忽略了我的覆盖。

p1tboqfb

p1tboqfb1#

在OnMouseWheel事件中,简单放置Abort;比如说

procedure TfrmMinorInjury.cboDischargetypeMouseWheel(Sender: TObject;
  Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean);
begin
  Abort;
end;
ddarikpa

ddarikpa2#

我解决了同样的任务,但在滚动框备忘录。
我的解决方案是
1.在卷动方块中控制点鼠标器滚轮。OnMouseWheel。在那里设定Handle:= true。
1.直接调用备忘录OnMouseWheel中滚动框. OnMouseWheel

相关问题