在Delphi中延迟执行
发布时间:2020-12-15 09:42:53 所属栏目:大数据 来源:网络整理
导读:调用程序结束后是否可以延迟启动程序? procedure StartLoop;begin DoSomething;end;procedure FormCreate(...);begin if ParamStr(1)='start' then StartLoop;end; StartLoop将在FormCreate中调用,FormCreate将等待,并阻止进一步执行FormCreate本身,以及进
调用程序结束后是否可以延迟启动程序?
procedure StartLoop; begin DoSomething; end; procedure FormCreate(...); begin if ParamStr(1)='start' then StartLoop; end; StartLoop将在FormCreate中调用,FormCreate将等待,并阻止进一步执行FormCreate本身,以及进一步执行它(FormShow等)之后执行,并且在StartLoop结束之前不会显示表单. 我需要等到FormCreate结束,然后运行StartLoop(不使用线程). 解决方法
最简单的方法是使用计时器.
让您在设计时在窗体上创建具有所需周期设置的DelayTimer和Enabled = False(您也可以动态创建它).为它分配事件处理程序: procedure TFormXX.DelayTimerTimer(Sender: TObject); begin DelayTimer.Enabled := False; // works only once StartLoop; end; 在表单初始化例程启动此计时器: procedure FormCreate(...); begin if ParamStr(1)='start' then DelayTimer.Enabled := True; end; 也许您想稍后启动计时器,例如 – 如果您的应用程序在创建期间执行某些连续操作,则在OnShow中启动计时器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |