如果combobox1选择了相同itemindex,怎么让它不激发onclick事件!

shehyde 2004-08-19 03:58:36
如果combobox内容:
内宾 itemindex

我 0
你 1
他 2

如当前combobox1.itemindex:=1;
当用户再combobox1中再次选择了“你” 也就是combobox1.itemindex的值不变,
怎么控制combobox1不激发onnclick事件呢?
...全文
168 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
merkey2002 2004-08-19
  • 打赏
  • 举报
回复
这样做:定义一个集合,具体看代码

implementation
type tint=set of 0..2;
var t1:tint;

{$R *.dfm}

procedure TForm1.ComboBox1Change(Sender: TObject);
var j:integer;
begin
j:=combobox1.ItemIndex;
if not(j in t1) then
begin
showmessage('yes');
t1:=t1+[j];
end;
end;

shehyde 2004-08-19
  • 打赏
  • 举报
回复
有没有知道?
ztenv 2004-08-19
  • 打赏
  • 举报
回复
onchange是最棒的,
luke5678 2004-08-19
  • 打赏
  • 举报
回复
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if ComboBox1.ItemIndex = 1 then Exit;
...
end;
shehyde 2004-08-19
  • 打赏
  • 举报
回复
有没有栏截事件, 我不想用牺牲内存的方法(定义私有变量)来处理!
jian23cn 2004-08-19
  • 打赏
  • 举报
回复
楼主如果真的不想让程序触发Onclikc事件可以用一个全局Boolean变量放在Onclikc事件的开头,并设置一个值判断是否继续执行,例如:
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
if x=False then Exit; //x为全局Boolean型变量
…………//做你原来的事情
end;
princesd 2004-08-19
  • 打赏
  • 举报
回复
变通才是硬道理,呵呵!
shehyde 2004-08-19
  • 打赏
  • 举报
回复
我的意思是如果选择了相同的内容,则不执行onchange或onclick的事件。
princesd 2004-08-19
  • 打赏
  • 举报
回复
激发OnChange事件,你要做操作的话最好在这里面来做哦

5,391

社区成员

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

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