我需要一个’无形’Delphi单元中的Timer(还有一个带有表单的主单元),所以我这样做:
unit ... interface type TMyTimer = Class(TTimer) public procedure OnMyTimer(Sender: TObject); end; var MyTimer: TMyTimer; implementation procedure TMyTimer.OnMyTimer(Sender: TObject); begin ... end; initialization MyTimer := TMyTimer.Create(nil); with MyTimer do begin Interval := 1000; Enabled := True; OnTimer := OnMyTimer; end; finalization FreeAndNil(MyTimer);
问题是OnMyTimer过程永远不会运行.我真的很感激为什么:-)
解决方法
除了你创建一个MyTimer并释放一个MouseTimer之外,我没有看到你的代码有任何问题(我假设你在GUI应用程序中使用你的代码或者至少有一个消息循环)
此代码示例适用于Delphi 5. Hello Worldget每秒写入事件日志.
unit Unit2; interface uses extctrls; type TMyTimer = Class(TTimer) public procedure OnMyTimer(Sender: TObject); end; var MyTimer: TMyTimer; implementation uses windows,sysutils,classes; procedure TMyTimer.OnMyTimer(Sender: TObject); begin OutputDebugString(PChar('Hello World')); end; initialization MyTimer := TMyTimer.Create(nil); with MyTimer do begin Interval := 1000; Enabled := True; OnTimer := OnMyTimer; end; finalization FreeAndNil(MyTimer); end.