如何重载TComboBox的onDropDown事件?(100分)(100分)

  • 主题发起人 主题发起人 zyycc
  • 开始时间 开始时间
Z

zyycc

Unregistered / Unconfirmed
GUEST, unregistred user!
如何重载TComboBox的onDropDown事件?
当单击下拉按钮时,我不希望列表框出现,而弹出我自己的From.
 
Form.ShowModal;
Abort;
 
一个是ABORT,另一个办法是重载TComboBox并截DROPDOWN消息:

TMyComboBox = class(TComboBox)
private
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
end;

{ TMyComboBox }

procedure TMyComboBox.CNCommand(var Message: TWMCommand);
begin
case Message.NotifyCode of
CBN_DROPDOWN:
begin
DropDown;//执行OnDropDown;
//这里是你的弹出代码
end;
else
inherited;
end;
end;

或者自己拿一个EDIT里面放一个BUTTON也行。
 
To Huzzz
能否再说说Abort。能否再看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=755663
谢谢啦!
 
Abort没什么的,jammi说的就是:

procedure TForm1.ComboBox1DropDown(Sender: TObject);
begin
Abort;
end;

你那三个问题我看了,你要的就是一个TButtonEdit,你去找找吧,这样的控件
很多的,去看看它们的源码就知道了。我有TdxButtonEdit,不过它是一个系列
的,太烦,代码有几千行。
我自己做了一个,就是一个EDIT里面放了一个BUTTON,一句代码都没有。
 
TMyComboBox = class(TComboBox)
pubic
procedure onDropDown(Sender, Source: TObject; X, Y: Integer);override;
end;

{ TMyComboBox }

procedure TMyComboBox.onDropDown(Sender, Source: TObject; X, Y: Integer);
begin
//这里是你的弹出代码
end;
 
接受答案了.不知咋的,给Huzzz的分没给到,重开帖再给?
 
后退
顶部