更改TCombobox的默认行为

时间:2014-08-27 08:50:42

标签: delphi inheritance subclass firemonkey imposter-pattern

我有一个使用TCombobox的多个表单的项目,我想在聚焦的组合框收到返回笔划时删除默认行为:

在TCustomCombobox的 Keydown 中:

vkF4, vkReturn:
    DropDown;

问:我如何删除所有表单的功能?

创建一个覆盖它的新自定义控件意味着要重新创建所有组合框。

A:制作“冒名顶替”子类:

发现了一个重复的问题:Delphi subclass visual component and use it

我将此代码放在一个单元中,并将该单元放在我的表单的界面/用途中。

TCombobox = class(FMX.ListBox.TComboBox)
  protected
    procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState);override;
  end;

procedure TCombobox.KeyDown(var Key: Word; var KeyChar: System.WideChar;
  Shift: TShiftState);
begin
  if key=vkReturn then exit;
  inherited;
end;

0 个答案:

没有答案