ELC*_*ouz 8 delphi serial-port timer command-line-interface
亲爱的德尔福程序员,
我正在寻找帮助如何编写一次性定时器(没有GUI,所以VCL定时器无可置疑)......
让我再解释一下.
在我的代码中(用VCL计时器解释但在这个特定项目中我没有表格):
procedure通过串口发送char的aInterval在OnTimer事件中:
我有一个代码发送一个字符然后禁用计时器本身永远不会再次执行.
问题是我需要使这些计时器的创建动态化.我想到了函数SetTimer()然后KillTimer()在"OnTimer事件"中禁用它(释放它).
这是一种好的(安全的)方式吗?
谢谢!
TLa*_*ama 15
从计时器事件中杀死计时器是否安全?
是的,那是非常安全的.
如何实现最简单的一次性计时器?
最简单的1秒单击计时器的实现就是这个,但是请注意,如果你开始更多它们,你将无法区分它们中的哪一个经过了它的间隔:
procedure TimerProc(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR;
dwTime: DWORD); stdcall;
begin
KillTimer(0, idEvent);
ShowMessage('I''m done!');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetTimer(0, 0, 1000, @TimerProc);
end;
Run Code Online (Sandbox Code Playgroud)