Delphi:我自己的Timer的OnTimer事件永远不会发生

前端之家收集整理的这篇文章主要介绍了Delphi:我自己的Timer的OnTimer事件永远不会发生前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一个’无形’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.

猜你在找的Delphi相关文章