让click无效(100分)

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

zhaowx

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了treeview组件,并且为onclick编写了事件处理,但处理有一段时间,我不想在
一次点击处理未结束时开始第二次点击。在第一次点击处理过程中如何使第二次点击无效,
并且,不用全局变量。
 
在处理开始时设置treeview的enable属性为false,处理结束后改回true
 
可以设一个标志位,根据不同的值来处理onclick事件。
 
不用全局变量可以用局部类型常数

procedure TForm1.Button1Click(Sender: TObject);
const
Working: boolean = false;
begin
if Working then exit;
Working := true;
//处理事物
....
//处理结束
Working := false;
end;
 
先把TreeView1->OnClick=NULL;
等一次点击处理结束时TreeView->OnClick=TreeViewClick;
OK!
 
加一个boolean型变量处理一下就行
 
提问者 to All:
处理过程是由另一个线程来完成的,onclick 只是发一个命令启动线程,无论线程事务完成
与否,系统并不会在处理线程事务时“等待”,它会立即执行下一语句,将标志变量付为
true,标志变量并不能起到作用。还有更好的办法吗?
 
试试在线程内对TREEVIEW的ENABLE属性进行控制,我没试过,只是提出一个设想。
 
<font color=red>看看你作弊的手段,http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=323696
非常无聊!!</font>
 
问题没搞清楚就继续讨论,不要不断责问斑竹!更不要自己给自己加分——这个无聊。

请尊重一下花费时间和网费回答你问题的人,详情我不想多说了。
 
不知道有没有跑题,可是将TREEVIEW的ONCLICK事件置为NIL,然后使用时再赋上.
 
多人接受答案了。
 
to wjiachun(王甲醇):
我发现,在所有论坛中的人中,你是最无聊的一个。在所有论坛中,只有你一个人整天在
干这种看大门的事,你以为别人就看不出我的方式吗,人家是不说而已,我为了学习,这
样做你就不能大度一点。按你的说法,我是小人,你能是一个君子吗?
 
我抱歉我不是一个君子,同时为自己感到可悲!
 
后退
顶部