我想更改,TComboBox以便如果我在其中键入文本或手动设置Text属性,它将触发OnChange事件.
就像现在一样,做ComboBox.Text := 'blah'不会触发OnChange事件,也不会在框中输入.
我尝试创建一个TComboBox后代,我认为这是正确的方法,但我不确定如何更改触发事件的内容.
据我所知,键入组合框将导致OnChange事件触发.但确实修改text属性确实没有.
我OnChange为你的组合框开火的方法是处理这个CM_TEXTCHANGED消息.这个处理程序需要调用该Change方法,然后调用该方法OnChange(如果已分配).
举个简单的例子,这是一个内插器类实现:
type
TComboBox = class(StdCtrls.TComboBox)
protected
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
end;
procedure TComboBox.CMTextChanged(var Message: TMessage);
begin
inherited;
Change;
end;
Run Code Online (Sandbox Code Playgroud)