原子函数的使用

bxcs 2004-11-26 03:17:08
用定义一个函数,条件是只有这个函数执行结束后才允许其他事件执行.
比如:关闭窗体的时候,我要先判断这个函数是否执行结束.没有执行结束的时候要等待.
请问这样的函数怎么写.
等待函数执行完的过程怎么做.
不要这种:
while 没有执行完 do
Application.ProcessMessages;
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
李冬宝 2004-11-29
  • 打赏
  • 举报
回复
WaitForSingleObject 怎么用?期待
bxcs 2004-11-29
  • 打赏
  • 举报
回复
TO: beyondtkl(大龙驹<暗黑系魔法师&&赏金猎人>)
假如我的窗体上有个ListView,我要在给ListView赋值之后在关闭窗体应该怎么做呢.我知道用WaitForSingleObject可以实现,但是我不了解这个API函数怎么用.
ppayun 2004-11-26
  • 打赏
  • 举报
回复
事件处理过程是一函数指针,你条件函数中给事件函数赋值,比如button1的click事件
条件函数中可以这样写:
if 符合条件 then
button1.Onclick = ClickProcedure
else
button1.Onclick = nil;

给Onclik初值设为nil,则,没有执行你的条件函数时,Button的OnClick事件不会执行任何
动作的
bee2518 2004-11-26
  • 打赏
  • 举报
回复
Cando是全局的,初始化为Flase
beyondtkl 2004-11-26
  • 打赏
  • 举报
回复
可以 用事件

CreateEvent

function yourfun
...
SetEvent

其他地方
WaitForSingleObject(theEvent...

你的这个函数是其他线程还也是 主线程的??
bee2518 2004-11-26
  • 打赏
  • 举报
回复
这样,只要那个过程没执行,Cando一定是False,执行了才是True
忘了说明一下:那个变量是全局的,初始化为Flase
bee2518 2004-11-26
  • 打赏
  • 举报
回复
不用什么原子,只要定义一个参数Cando:boolean,然后定义一个过程
procedure IsCando;
begin
Cando:=True;
end;
别的地方只要做判断
if Cando then
begin
Cando:=False;
....
end
else
...

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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