加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:16:31 所属栏目:大数据 来源:网络整理
导读:我需要一个’无形’Delphi单元中的Timer(还有一个带有表单的主单元),所以我这样做: unit ...interfacetype TMyTimer = Class(TTimer) public procedure OnMyTimer(Sender: TObject); end;var MyTimer: TMyTimer;implementationprocedure TMyTimer.OnMyTimer
我需要一个’无形’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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读