combobox选项被程序改变时能自动执行吗?

aybc 2003-06-20 04:35:21
在combobox中有4个选项a,b,c,d。用鼠标选择时可以利用onpress或onclick触发事件,运行里面的代码。可是当combobox中的选项被程序自动选择时,怎么自动运行里面的程序啊?
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mikokong 2003-06-27
  • 打赏
  • 举报
回复
我也遇到这个问题,我看delphi7的bug来的,我继承tcombobox解决了问题
unit MYCOMBO;

interface

uses Messages, Classes, StdCtrls;

type
TMyComboBox = class(TComboBox)
private
FOnItemChanged : TNotifyEvent;
protected
procedure WndProc(var Message: TMessage); override;
procedure Change; override;
published
property OnItemChanged: TNotifyEvent read FOnItemChanged write FOnItemChanged;
end;

procedure Register;

implementation

{______________________________________________________________________________}
procedure Register;
begin
RegisterComponents('MikoComponent',[TMyComboBox]);
end;

{______________________________________________________________________________}
procedure TMyComboBox.WndProc(var Message: TMessage);
begin
inherited WndProc(Message);
if (Message.Msg = CB_SETCURSEL) then
if Assigned(FOnItemChanged) then
FOnItemChanged(Self);
end;

procedure TMyComboBox.Change;
begin
if Assigned(FOnItemChanged) then
FOnItemChanged(Self);
inherited Change;
end;
end.

将以前的onchange事件换成OnItemChanged就可以了
aybc 2003-06-20
  • 打赏
  • 举报
回复
onchange事件也是鼠标触动的。
sheepcyk 2003-06-20
  • 打赏
  • 举报
回复
TCustomComboBox.OnChange
aybc 2003-06-20
  • 打赏
  • 举报
回复
我试过了,不能的。
lovelymelon 2003-06-20
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
ONCHANGED
中触发

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧